<script type="text/javascript">window.onload = function (){var oDiv = document.getElementsByClassName("facebox") ; //根据类名获取一个数组//循环取值for(var i=0;i<oDiv.length;i++){ oDiv[i].onmousedown = function(ev){ var oEvent = ev || event; dargX = oEvent.clientX - oDiv[i].offsetLeft;//程序进不去这个方法 }}</script> 这是为什么
2 回答
繁星coding
TA贡献1797条经验 获得超4个赞
典型的没有理解闭包,正好这两天刚学的闭包。
假如其他代码都是正确的,for循环可以改成这样的
for(var i=0;i<oDiv.length;i++){ oDiv[i].onmousedown = (function(j){ return function(ev){ var oEvent = ev || event; dargX = oEvent.clientX - oDiv[j].offsetLeft;//程序进不去这个方法 } })(i); }
那个offsetLeft是属性还是方法?如果是方法不是应该offsetLeft()这样写吗?
- 2 回答
- 0 关注
- 215 浏览
添加回答
举报
0/150
提交
取消