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

我想明白这个有什么用,没有这个就执行不了咯,求大神给解释一下,这个是遍历吗?

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>


qq_控心_0
浏览 1762回答 3
3回答

千秋此意

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);     } }

LeJo

是遍历,把每个onclick事件绑定到a标签上
打开App,查看更多内容
随时随地看视频慕课网APP