为了账号安全,请及时绑定邮箱和手机立即绑定

鼠标点击事件,点击第几个弹出第几。

鼠标点击事件,点击第几个弹出第几。

qq_控心_0 2016-10-24 18:39:14
我想明白这个有什么用,没有这个就执行不了咯,求大神给解释一下,这个是遍历吗?for(var i=0;i<a.length;i++){funny(i)}<html><head><meta charset="gb2312"></head><body><a>1</a><br><a>2</a><br><a>3</a><br><a>4</a><br><a>5</a><br><a>6</a><br><a>7</a><br><a>8</a><br><a>9</a><br><a>10</a><script type="text/javascript"> var a=document.getElementsByTagName("a"); var funny = function(i){ a[i].onclick=function(){ alert(i+1)     } }    for(var i=0;i<a.length;i++){    funny(i)} </script></body></html>
查看完整描述

3 回答

已采纳
?
千秋此意

TA贡献158条经验 获得超187个赞


funny(i)是闭包,为了每次能弹出不同的i而不是循环完毕后的全局变量i

/** 前三种写法都是闭包,最后一种是自定义属性 */
for (var i = 0; i < a.length; i++) {
    (function(i){
        a[i].onclick = function() {
            alert(i + 1);
        }
    })(i);
}

for (var i = 0; i < a.length; i++) {
    (function(){
        var index = i;
        a[i].onclick = function() {
            alert(index + 1);
        }
    })();
}

for (var i = 0; i < a.length; i++) {
    a[i].onclick = (function(i){
        return function() {
            alert(i + 1);
        }
    })(i);
}

for (var i = 0; i < a.length; i++) {
    a[i].index = i;
    a[i].onclick = function() {
        alert(this.index + 1);
    }
}


查看完整回答
2 反对 回复 2016-10-24
?
LeJo

TA贡献16条经验 获得超17个赞

是遍历,把每个onclick事件绑定到a标签上

查看完整回答
反对 回复 2016-10-24
  • 3 回答
  • 1 关注
  • 1761 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信