初学jQuery
遇到问题:当时我用语句:onclick(方法),为标签绑定点击事件时,觉得那样一个个绑定太麻烦了;
产生想法:可不可以用循环直接遍历绑定呢?——可以!
具体操作:先用$("类名"),获取到一个数组,再通过循环数组下标为它们一个个添加onclick点击事件,具体代码如下:
$(function () {
var c=$(".className");
for(var i=0;i<c.length;i++){
c[i].onclick="methodName(i)";
}
});
实验结果:不可行
结果分析:感觉逻辑上时可行的,也没有语法错误,为什么不可以呢?原因是:function()是一个隐藏方法,它会在最后运行,在这里他会运行的比里面的循环要慢,所以最后赋值给数组 c 的下标值都会是循环结束后 i 的值
正确代码:
<script>
$(function () {
var asEach=$('a');
for(var i=0;i<asEach.length;i++){
$(asEach[i]).bind("click",{index:i},clickHandler)
};
function clickHandler(ti) {
var i=ti.data.index;
alert(i);
}
});
</script>
<body>
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
</body>
这样就可以循环为a标签添加返回值递增的onclick方法了!