美文网首页
js 轮播Cannot read property 'xxx'

js 轮播Cannot read property 'xxx'

作者: jamesSky | 来源:发表于2016-09-17 08:44 被阅读0次

js原生写轮播经常见到的问题就是for循环嵌套事件,就容易出现循环变量并不能为事件所用的现象,例子如下:

var myObj=document.getElementsByTagName('img');

for(j = 0; j< myObj.length ; j++){

myObj[j].onclick = function(){

myObj[j].style.display= 'block';

}

}

这里会报错,因为j并不会如所想一样添加事件,添加事件的j为myObj.length,处理方式如下,也就是把变量异步一下下,

"use strict";

var myObj = document.getElementsByTagName('img');

var _loop = function _loop(j) {

myObj[j].onclick = function () {

myObj[j].style.display= 'block';

};

};

for (var j = 0; j < myObj.length; j++) {

_loop(j);

}

相关文章

网友评论

      本文标题:js 轮播Cannot read property 'xxx'

      本文链接:https://www.haomeiwen.com/subject/pcgiettx.html