认为这将是快速而简单的。但事实并非如此。我正在追逐的场景是取消绑定某个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);
}
});
答案 0 :(得分:2)
只需使用
$('#UnHookHandlers').on('click', function () {
$('#NewButtonContainer button').off('click');
});