美文网首页
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