Jquery删除onclick事件



我有几个按钮,但根据所选择的单选按钮,我希望发生2件事中的1件。如

当建筑单选按钮被选中,点击按钮,然后显示所有的建筑,但不显示公园。同样,当公园单选按钮被选中,按钮被点击显示所有的公园,但不显示建筑物。

我想为不需要的适当功能删除onclick事件,我可以这样做。

$('#youLinkID').attr('onclick','').unbind('click');

然而,这将删除两个 onclick事件。

是否有一种方法来删除只有一个onclick事件,也许通过名称,或一种方式来添加回一个onclick事件的名称?

编辑:所以我在下面的Mark的帮助下,使用了命名空间,得出了这个:

$('#showOver').bind('click.buildOver', function(){ 
        $(this).unbind('click.parkOver')
    });

不工作,然而,我知道它调用它并运行我的测试,

.css({"backgroundColor":"black","color":"white"})

它似乎没有添加buildOver()函数的onclick事件

您可以使用名称空间来unbind特定的单击处理程序。

$("a").bind("click.pick1", function () {
    alert('pick 1');
    $(this).unbind("click.pick1");
}).bind("click.pick2", function () {
    alert('pick 2');
});

jsfiddle

示例

检查:演示

<a href="#" onclick="alert('hello');">I produce an alert via onclick</a>
<a href="#" onclick="alert('hello');">Me too</a>
<a href="#" onclick="$('a').removeAttr('onclick');">I remove them</a>

技巧是这样的代码:

$('a').removeAttr('onclick');
参考

最新更新