深入理解JQuery循环绑定事件
深入理解JQuery循环绑定事件
<html> <head> <title></title> <scripttype="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> </head> <body> <scripttype="text/javascript"> $(document).ready(function(){ vararray=[0,1,2,3]; //1. //始终弹出3,因为function(){}并没有被立即解析,直到调用的时候才被解析,这时index已经是3了。 //2. //立即弹出0,1,2,3,因为使用了function(){}(index)立即被解析,遇到alert,就立即弹出来了。 //3. //正确执行,点击btn0,弹出0,点击btn1,弹出1... //1.因为function(i){}(index)是被立即解析的,所以i依次送入的是0,1,2,3 //2.内部没有直接alert,是因为不想立即执行,想点击时再执行,所以返回了一个函数出去。 //4. for(varindexinarray){ $("#btn"+index).bind("click",{index:index},clickHandler); } functionclickHandler(event){ varindex=event.data.index; varitem=array[index]; alert(item); } //正确执行,点击btn0,弹出0,点击btn1,弹出1... //利用了event.data,因为index在绑定的时候已经被持久化到event.data中了,所以响应的时候我们可以取到。 }); </script> <inputtype="button"id="btn0"value="btn0"/> <inputtype="button"id="btn1"value="btn1"/> <inputtype="button"id="btn2"value="btn2"/> <inputtype="button"id="btn3"value="btn3"/> </body> </html>
以上这篇深入理解JQuery循环绑定事件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。