jQuery對于已有的元素綁定事件只要簡單的
$("#id").bind('click',function(){
//do something
})
而如果對于已經(jīng)加載完成頁面,再添加元素,而后還需要重新綁定事件。例如像掃雷這樣的網(wǎng)頁,如果動(dòng)態(tài)的改變雷區(qū)的大小,由4*4變成8*8那么就需要給所有雷點(diǎn)重新綁定事件,而delegate可以針對一個(gè)元素作為代理,通過這個(gè)元素的關(guān)系,預(yù)先綁定所需元素的事件。
<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() 方法為指定的元素(屬于被選元素的子元素)添加一個(gè)或多個(gè)事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時(shí)運(yùn)行的函數(shù)。
使用 delegate() 方法的事件處理程序適用于當(dāng)前或未來的元素(比如由腳本創(chuàng)建的新元素)。
語法
$(selector).delegate(childSelector,event,data,function)
參數(shù):
childSelector
必需。規(guī)定要附加事件處理程序的一個(gè)或多個(gè)子元素。
event
必需。規(guī)定附加到元素的一個(gè)或多個(gè)事件。
由空格分隔多個(gè)事件值。必須是有效的事件。
data
可選。規(guī)定傳遞到函數(shù)的額外數(shù)據(jù)。
function
必需。規(guī)定當(dāng)事件發(fā)生時(shí)運(yùn)行的函數(shù)。