菜鳥教程上的說(shuō)法是這樣:
delegate() 方法為指定的元素(屬于被選元素的子元素)添加一個(gè)或多個(gè)事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時(shí)運(yùn)行的函數(shù)男窟。
使用 delegate() 方法的事件處理程序適用于當(dāng)前或未來(lái)的元素(比如由腳本創(chuàng)建的新元素)。
正常的使用方法: 【 點(diǎn)擊div里的p標(biāo)簽時(shí)發(fā)生事件 】
$("div").delegate("p","click",function(){
????$("p").css("background-color","pink");
});
但是在解釋中提到了" 適用于當(dāng)前或未來(lái)的元素 "?
$(document).ready(function(){
// 在點(diǎn)擊新增的p段落時(shí) 這段代碼會(huì)生效
????$("html").delegate("p","click",function(){
? ? ? ? alert("這段會(huì)生效")
????})
// 這段不會(huì)生效
????$("p").on("click",function(){????????
? ? ? ? alert("這段不會(huì)生效")
????})?
//新增加的p標(biāo)簽?
????$(".addP").html("<p>新增的段落</p>")
});
<p>新增的段落</p> 就是未來(lái)的元素 , deletate會(huì)為他綁定上click事件 但是on卻不能為未來(lái)的元素綁定事件