Jquery 是否有方法解除每个元素实例上委托事件的绑定?

Jquery 是否有方法解除每个元素实例上委托事件的绑定?,jquery,jquery-on,jquery-delegate,Jquery,Jquery On,Jquery Delegate,我需要做的是获得jQuery的功能。使用委托在每个匹配的元素上创建一个 正如您可以看到的,多次单击“Baz”或“Bat”附件(已删除)的链接。另一方面,单击“Foo”的链接只执行一次代码,但也会禁用“Bar”的代码(反之亦然) 小提琴: 我想做的是,单击其中任何一个元素都会执行该元素的处理程序,但其他元素在单击一次之前保持不变 HTML: 只需使元素不再与选择器匹配: 在各个跨度上放置ID,然后在处理程序中添加: rowref=$(this).attr("id"); $('#'+rowref).

我需要做的是获得
jQuery的功能。使用委托在每个匹配的元素上创建一个

正如您可以看到的,多次单击“Baz”或“Bat”附件(已删除)的链接。另一方面,单击“Foo”的链接只执行一次代码,但也会禁用“Bar”的代码(反之亦然)

小提琴:

我想做的是,单击其中任何一个元素都会执行该元素的处理程序,但其他元素在单击一次之前保持不变

HTML:


只需使元素不再与选择器匹配:


在各个跨度上放置ID,然后在处理程序中添加:

rowref=$(this).attr("id");
$('#'+rowref).click(function(){event.stopImmediatePropagation()}

保持委托处理程序不变,但在事件到达之前拦截它。

这就是您要寻找的吗?最好在侦听器中使用.one()或$this.off(e)。
// this version removes the handler as soon as any instance is clicked!
$('#product-list').one('click.productRemoveOne', 'a.removeWithOne', function (e) {
  var $this = $(this),
      $name = $this.siblings('span.product-name');

  e.preventDefault();

  $name.text($name.text() + ' (removed)');
});

// this one executes the handler multiple times!
$('#product-list').on('click.productRemoveOn', 'a.removeWithOn', function (e) {
  var $this = $(this),
      $name = $this.siblings('span.product-name');

  e.preventDefault();

  $name.text($name.text() + ' (removed)');
});
$('#product-list').on('click.productRemoveOn', 'a.removeWithOn:not(.ignore)', function (e) {
  var $this = $(this).addClass("ignore"),
  ...
rowref=$(this).attr("id");
$('#'+rowref).click(function(){event.stopImmediatePropagation()}