JQuery。没有解开我的.On点击事件

时间:2015-08-06 09:20:23

标签: jquery

我试图取消绑定click但没有成功。

这个想法是,在调用doUnbind()方法时,它应该取消绑定click事件,但它总是会让我进入“开启”事件

 $(document).ready(function() {
    $('#activeListing tbody').on('click', 'button.update', function() {
         alert('clicked');
    });
}

function doUnbind() {
    $('#activeListing tbody').off('click', 'button.update', function () {
        // should unbind but not working 
    }); 
}

2 个答案:

答案 0 :(得分:3)

您正在尝试删除未添加的功能。您需要使用命名函数,以便告诉jQuery要删除哪个函数。

function addClick() {
    alert('clicked');
}

$(document).ready(function() {
    $('#activeListing tbody').on('click', 'button.update', addClick);
}

function doUnbind() {
    $('#activeListing tbody').off('click', 'button.update', addClick); 
}

您也可以一次删除所有事件侦听器,但请确保您确实要这样做:

function doUnbindAll() {
    $('#activeListing tbody').off('click', 'button.update'); 
}

答案 1 :(得分:0)

使用事件命名空间:

$(document).ready(function() {
    $('#activeListing tbody').on('click.update', 'button.update', function() {
         alert('clicked');
    });
}

function doUnbind() {
    $('#activeListing tbody').off('click.update');
}