我有一個如何處理嵌套事件的jQuery
<span class="fold"></span>
,用一個
$('.fold').click(function (event) { ... });
處理現在的Click事件添加了新的「摺疊」,我想分配通過Ajax類相同的事件處理程序。這是可能的,如果是這樣的話在邏輯上我會「重新」 - 添加我的點擊處理程序?
在此先感謝
我有一個如何處理嵌套事件的jQuery
<span class="fold"></span>
,用一個
$('.fold').click(function (event) { ... });
處理現在的Click事件添加了新的「摺疊」,我想分配通過Ajax類相同的事件處理程序。這是可能的,如果是這樣的話在邏輯上我會「重新」 - 添加我的點擊處理程序?
在此先感謝
如果要動態地添加需要處理的元素,使用授權像這樣的事件處理程序:
$(document).on('click', '.fold', function(e) {
// do stuff
});
請注意,爲了獲得最佳性能,您應該使用元素附加到的元素的選擇器替換document
。
Spot。非常感謝:-) – CJe
@CJe沒問題,樂於幫忙。 –
只要寫:
$(".fold").on("click", function(event){
//write code
});
更新:對於動態附加元素。這樣寫:
$(document).on('click', '.fold', function(e) {
// write code
});
這相當於OP已有的內容,並且不會在動態附加元素上工作 –
@RoryMcCrossan爲什麼它不能在動態附加元素上工作? –
@ Arvind07您需要以某種方式將它添加到元素中,_after_被追加 –
http://stackoverflow.com/questions/2319790/how-to-bind-event-after-ajax-success-in-jquery – Buzz
你以後的概念被稱爲_event delegation_,並且有幾種方法可以做它(一些取決於你正在使用的jQuery版本)。事件委託的更高效的使用需要更多關於標記的知識,因爲它涉及到將事件處理程序添加到與您的'class =「。fold」'元素最接近的共同祖先。 – andyb