尝试解除绑定点击事件并附加新事件

时间:2017-10-16 14:38:42

标签: javascript jquery unbind

我试图取消绑定点击事件,并在点击按钮一次后附加另一个点击事件。

<small id="selectall_agriculture" onclick="refineSearch.testing('agriculture')">(select all)</small>

运行测试函数后,我想运行selectAllPropertyTypesInGroup()函数,而是每次都调用测试函数。如果我从小标签中取出onclick事件并从另一个前端控件触发setGroupHeaderNotAllSelected(),则在setGroupHeaderNotAllSelected()函数中使用$('#selectall_'+ groupName).click()创建的click事件可以正常工作。我觉得unbind不起作用,因为click事件被硬编码到小标签中。有什么建议吗?

refineSearch.testing = function (groupName) {
    console.log("Click event from front end running instead of the one binded");
    setGroupHeaderNotAllSelected (groupName);
};

var setGroupHeaderNotAllSelected = function (groupName) {
    $('#selectall_' + groupName).unbind('click');
    $('#selectall_' + groupName).click(function () {
        selectAllPropertyTypesInGroup(groupName);
        return false;
    });
};

1 个答案:

答案 0 :(得分:1)

unbindoff方法已被弃用,请改用clickon,但您可以使用jQuery doc $('#selectall_' + groupName).off('click').click(function () { selectAllPropertyTypesInGroup(groupName); return false; }); 方法)

onclick

此外,您需要在声明性onclick属性集和jQuery绑定之间进行选择。因此,在$('#selectall_agriculture').click(function() { refineSearch.testing('agriculture'); }); 属性使用时,我会在App start

上通过脚本添加hanlder
import httplib