首页 > 解决方案 > 首次使用后仅关闭特定的 jQuery 侦听器

问题描述

使用一次后如何删除特定的侦听器?在这种情况下,它是一个负载监听器。

$("#my_image").on('load', function() {
        // do stuff
        // turn off here        
}).each(function() {
  if(this.complete) {$(this).trigger('load');}
});

我不想删除可能附加到同一元素的任何其他侦听器。我看到的其他问题删除了附加到元素的所有侦听器。

标签: javascriptjquery

解决方案


您可以使用一种方法:

$("#my_image").one('load', function() {
        // do stuff
        // turn off here        
}).each(function() {
  if(this.complete) {$(this).trigger('load');}
});

从文档:

将处理程序附加到元素的事件。每个事件类型的每个元素最多执行一次处理程序。.one() 方法与 .on() 方法相同,只是给定元素和事件类型的处理程序在第一次调用后是未绑定的。


推荐阅读