jQuery对于已有的元素绑定事件只要简单的
$("#id").bind('click',function(){
//do something
})
而如果对于已经加载完成页面,再添加元素,而后还需要重新绑定事件。例如像扫雷这样的网页,如果动态的改变雷区的大小,由4*4变成8*8那么就需要给所有雷点重新绑定事件,而delegate可以针对一个元素作为代理,通过这个元素的关系,预先绑定所需元素的事件。
<div id='mine_field '>
<div class='mine'></div><div class='mine'></div><div class='mine'></div>……
</div>
<script>
$("#mine_field").delegate(" .mine",'click',function(){
//do something
})
</script>
百度:
定义和用法
delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
语法
$(selector).delegate(childSelector,event,data,function)
参数:
childSelector
必需。规定要附加事件处理程序的一个或多个子元素。
event
必需。规定附加到元素的一个或多个事件。
由空格分隔多个事件值。必须是有效的事件。
data
可选。规定传递到函数的额外数据。
function
必需。规定当事件发生时运行的函数。
网友评论