前一篇的功能已經正常,代碼很少,很簡單。但是還有不少錯誤。用jslint掃描了一下,有下列錯誤:
1.window變數要用注釋說明,嚴格來說這不是錯誤,是jslint的問題
2.parseInt第二個參數必須指定10,代表10進位
3.parsetInt裡面的dragObj應該是window.dragObj
4.init函數應該放在最後,因為它用到的幾個函數要在前面定義
5.使用use strict語句嚴格檢查
6.多了兩個空格
再開啟Chrome的偵錯模式(F12),看到很多error在mouseMove中,原來init函數裡面忘記初始化對象為null了。
加上後錯誤消失。
好,現在代碼漂亮多了。
/*global window */function mouseDown(e) {'use strict';window.dragObj = e.currentTarget;if (window.dragObj !== null) {window.clickLeft = window.event.x - parseInt(window.dragObj.style.left, 10);window.clickTop = window.event.y - parseInt(window.dragObj.style.top, 10);window.dragObj.style.zIndex += 1;}}function mouseStop() {'use strict';window.event.returnValue = false;}function mouseMove() {'use strict';if (window.dragObj !== null) {window.dragObj.style.left = window.event.x - window.clickLeft; window.dragObj.style.top = window.event.y - window.clickTop;}}function mouseUp() {'use strict';window.dragObj = null;}function init() {'use strict'; window.dragObj = null;window.document.onmousemove = mouseMove;window.document.onmouseup = mouseUp;window.document.ondragstart = mouseStop;}