TL/DR:有什麼辦法可以防止jQuery在元素從DOM中移除時自動解除綁定事件?防止jQuery在元素移除時解除綁定事件
當您在jQuery元素上調用remove()
時,jQuery會自動解除綁定該元素的所有事件。例如,假設我有以下內容:
var button = $("<button>Click me</button>");
$("body").append(button);
button.click(function() {
console.log("clicked");
});
button.remove();
$("body").append(button);
如果我單擊按鈕,則不會向控制檯輸出任何內容。解決這個問題的一種方法是將事件元素的父綁定是這樣的:
$("body").on("click", "button", function() {
console.log("clicked");
});
我試圖建立一個可重用的控制,它包裝一個jQuery元素,並增加了新的行爲給它。將事件綁定到父元素的解決方案對我來說不起作用,因爲我無法確定元素在DOM中的附加位置以及它是否會被刪除。出於性能方面的原因,我不想將事件綁定到文檔(可能會有很多)。有什麼辦法來防止jQuery的默認移除行爲?
哇,你在不到一分鐘的時間內回答了我的問題。我不確定我是如何錯過'remove'文檔中的'detach'。無論如何,感謝您的幫助! – LandonSchropp
@Arun - 如果我使用detach()方法如何重新記憶? –
@sudhar你回憶什麼意思? –