取消绑定处理程序关闭按钮在一个分区

时间:2014-07-25 15:08:50

标签: jquery

认为这将是快速而简单的。但事实并非如此。我正在追逐的场景是取消绑定某个div中按钮的处理程序。 This plunk列出了我要做的事情。

您将看到,当单击前两个按钮中的任何一个时,会在NewButtonContainer div中添加一个按钮,并且会连接一个click事件。

我认为off()方法存在重载,这会让我将所选元素的子元素作为解绑处理器的目标。

在那个Plunk中,带有文本 Unhook Handlers 的按钮是我用来尝试解除处理程序解除绑定的按钮:

$(function(){

  $('#ClickMe').on('click', function () {

     $('#NewButtonContainer').append('<button id="one">One</button>'); 

     $('#one').on('click', alertScreen);

  });

  $('#ClickMeToo').on('click', function () {

    $('#NewButtonContainer').append('<button id="two">Two</button>'); 

     $('#two').on('click', alertScreen);

  });

  $('#UnHookHandlers').on('click', function () {
    $('body').off('click', '#NewButtonContainer button', alertScreen);
  });

  var alertScreen = function (e) {
    alert(e.currentTarget.id + ' was clicked');
    console.log(e);
  }

});

1 个答案:

答案 0 :(得分:2)

只需使用

$('#UnHookHandlers').on('click', function () {
    $('#NewButtonContainer button').off('click');
});

Plunker