将事件绑定到";删除“;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”事件的事件处理程序将被删除,因此不会被调用。