jQuery - 当元素从 DOM 中移除时触发事件

标签 jquery events dom triggers

我想弄清楚如何在从页面中删除元素时执行一些 js 代码:

jQuery('#some-element').remove(); // remove some element from the page
/* need to figure out how to independently detect the above happened */

是否有专门为此设计的事件,例如:

jQuery('#some-element').onremoval( function() {
    // do post-mortem stuff here
});

最佳答案

您可以为此使用 jQuery 特殊事件

简单来说,

设置:

(function($){
  $.event.special.destroyed = {
    remove: function(o) {
      if (o.handler) {
        o.handler()
      }
    }
  }
})(jQuery)

用法:

$('.thing').bind('destroyed', function() {
  // do stuff
})

补充 Pierre 和 DesignerGuy 的评论:

要在调用 $('.thing').off('destroyed') 时不触发回调,请将 if 条件更改为:if (o.handler && o.输入 !== 'destroyed') { ... }

关于jQuery - 当元素从 DOM 中移除时触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2200494/

相关文章:

javascript - jquery 将事件绑定(bind)到新元素

javascript - 在所有浏览器中将 document.domain 设置回其原始值?

javascript - 通过单击周围的 td 来单击复选框

javascript - Highcharts 自定义事件插件右键单击事件未触发

javascript - 在顶部的元素框上滚动设置背景颜色

javascript - 用户单击关闭按钮后取消 HTA 关闭

javascript - 如何缩放网页内容?

javascript - 用 30 个符号更新每个 h1 标签(h1 标签下方 3 个段落中的 10 个符号)

javascript - 如何获得准确的鼠标按下坐标?为什么我的代码不起作用?

javascript onscroll淡入淡出相同的类但具有不同的div