$("p").delegate("body", "click", function(){
alert("P元素的CLICK事件!");
});
這個程式碼的意思是向Body元素下面的已有P元素以及未來被新增到body的P元素新增click事件。
$("body").append("
後追加的p元素
此時這個被新增的p元素也會被繫結上之前程式碼上的那個click事件,不必再手動繫結。
但是本人並不推薦用delegate的方式給元素繫結事件處理函式,他的原理是在body(引數第一個傳的是啥就是啥)繫結click(第二個引數傳的是啥就是啥)事件
,然後判定觸發當前click的事件是否符合當前繫結的選擇器(即程式碼示例中的$("p")),如果符合,再回調你的click函式。也就是說這個方式繫結的click事件並非是直接繫結到p(程式碼寫的是啥就是啥)元素上的,而是body上的,效能差,一旦用這種方式給10種dom繫結click事件,那麼他肯定會有一個佇列儲存這10種選擇器,當你觸發一個click事件時會用一個迴圈去判斷是否滿足這10種dom中的具體哪一種而後再回調具體的事件處理函式。而且還有個問題就是他有些事件並不支援這樣繫結。所以除了萬不得已不推薦這樣寫。
$("p").delegate("body", "click", function(){
alert("P元素的CLICK事件!");
});
這個程式碼的意思是向Body元素下面的已有P元素以及未來被新增到body的P元素新增click事件。
$("body").append("
後追加的p元素
");此時這個被新增的p元素也會被繫結上之前程式碼上的那個click事件,不必再手動繫結。
但是本人並不推薦用delegate的方式給元素繫結事件處理函式,他的原理是在body(引數第一個傳的是啥就是啥)繫結click(第二個引數傳的是啥就是啥)事件
,然後判定觸發當前click的事件是否符合當前繫結的選擇器(即程式碼示例中的$("p")),如果符合,再回調你的click函式。也就是說這個方式繫結的click事件並非是直接繫結到p(程式碼寫的是啥就是啥)元素上的,而是body上的,效能差,一旦用這種方式給10種dom繫結click事件,那麼他肯定會有一個佇列儲存這10種選擇器,當你觸發一個click事件時會用一個迴圈去判斷是否滿足這10種dom中的具體哪一種而後再回調具體的事件處理函式。而且還有個問題就是他有些事件並不支援這樣繫結。所以除了萬不得已不推薦這樣寫。