将事件绑定到";删除“;jQuery函数
我得到了这个函数:将事件绑定到";删除“;jQuery函数,jquery,Jquery,我得到了这个函数: (function($) { var origAppend = $.fn.append; $.fn.append = function() { return origAppend.apply(this, arguments).trigger("append"); }; })(jQuery); 它将一个事件绑定到jQuery的“append”函数(我会注意后面的“appendTo”) 它工作得很好。我尝试对其进行更改,使其与“删除”功能
(function($) {
var origAppend = $.fn.append;
$.fn.append = function() {
return origAppend.apply(this, arguments).trigger("append");
};
})(jQuery);
它将一个事件绑定到jQuery的“append”函数(我会注意后面的“appendTo”)
它工作得很好。我尝试对其进行更改,使其与“删除”功能一起工作:
(function($) {
var origRemove = $.fn.remove;
$.fn.remove = function() {
return origRemove.apply(this, arguments).trigger("remove");
};
})(jQuery);
但是它不起作用。在调用原始的
remove()
方法之后,您正在触发remove
事件,此时元素被删除,所有相关的数据和事件处理程序都被删除
必须在删除元素之前触发事件
var origRemove = $.fn.remove;
$.fn.remove = function() {
this.trigger("remove");
return origRemove.apply(this, arguments);
};
你能详细说明一下“不起作用”吗?你有错误吗?它是否无法移除该元素?事件没有触发吗?没有错误,事件根本不会触发。像这样->,当您删除元素时,您正在触发一个不再存在的元素上的事件。谢谢您,它成功了!您的评论应该作为答案发布。@adeneo-DOM元素不再存在并不完全正确。它仍然存在,直到不再有对它的引用并且它被垃圾回收(这不是这个方法内部发生的事情,它可能会在以后发生)
.remove()
确实去掉了jQuery事件处理程序,但这可能是这里的主要问题,因为“remove”事件的事件处理程序将被删除,因此不会被调用。