什么鬼呀,click 什么啊?,能把完整源代码提供一下吗?

来源:7-1 [JavaScript]理解闭包

UFO2015

2016-07-09 12:10

document.body.innerHTML =
        "<div id='div1'><button>111</button></div>" + "<div id='div2'><button>222</button></div>" +
        "<div id='div3'>333</div>" + "<div id='div4'>444</div>";

    for (var i = 0; i < 4; i++) {
        document.getElementById('div' + i).addEventListener('click', function () {
            alert(i);//4
        });
    }



document.body.innerHTML =
        "<div id='div1'><button>111</button></div>" + "<div id='div2'><button>222</button></div>" +
        "<div id='div3'><button>333</button></div>" + "<div id='div4'><button>444</button></div>";

    for (var i = 0; i < 4; i++) {
        !function (i) {
            document.getElementById('div' + i).addEventListener('click', function () {
                alert(i);//1,2,3
            });
        } (i);
    }
什么鬼呀,click 什么啊?,能把完整源代码提供一下吗?
写回答 关注

4回答

  • error_zhu
    2016-08-19 12:30:12

    "click"双引号

    慕粉3830...

    在js中单引号和双引号的作用好像是一样的,并没有强制说必须要双引号

    2016-11-09 11:14:49

    共 1 条回复 >

  • 慕粉3377762
    2016-07-26 22:50:11
    document.body.innerHTML="<div id='div1'>aaa</div><div id='div2'>bbb</div><div id='div3'>ccc</div>";
    //给页面添加三个div元素
    for(var i=1;i<4;i++){
    !function(i){
        document.getElementById('div'+i).addEventListener("click",function(){
            //对象.addEventListener("事件名",闭包引用外面作用域的函数(这里为i))
            alert(i);//点击每个div弹出的i均不一样
        })
    }(i);//形成闭包,把每个i单独传入(立即执行函数)
    }


  • 慕妹3980239
    2016-07-09 14:21:54

    addEventListener DOM2级操作方法,可以同时绑定多个事件,在这里为每个div绑定了click事件,可以去搜下addEventListener

  • UFO2015
    2016-07-09 14:15:34
     document.body.innerHTML =
            "<div id='div1'><button>111</button></div>" + "<div id='div2'><button>222</button></div>" +
            "<div id='div3'>333</div>" + "<div id='div4'>444</div>";
    
        for (var i = 0; i < 4; i++) {
            document.getElementById('div' + i).addEventListener('click', function () {
                alert(i);//4
            });
        }
    document.body.innerHTML =
            "<div id='div1'><button>111</button></div>" + "<div id='div2'><button>222</button></div>" +
            "<div id='div3'><button>333</button></div>" + "<div id='div4'><button>444</button></div>";
    
        for (var i = 0; i < 4; i++) {
            !function (i) {
                document.getElementById('div' + i).addEventListener('click', function () {
                    alert(i);//1,2,3
                });
            } (i);
        }


JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281111 学习 · 1020 问题

查看课程

相似问题