jquery删除onclick事件

时间:2013-04-15 13:32:42

标签: jquery onclick

我有几个按钮,但根据选择的单选按钮,我希望发生两件事情中的一件。 e.g

当选择建筑物单选按钮时,单击该按钮然后显示所有建筑物但不显示公园。 类似地,当选择公园单选按钮,并且单击按钮显示所有公园但不显示建筑物。

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

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

然而,这将删除 BOTH onclick事件。

是否有方法只删除1个onclick事件,可能是名称,或者是按名称添加onclick事件的方法?

编辑: 所以我使用了Mark下面的帮助并使用了名称空间,并提出了这个:

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

然而,无论如何,我知道它正在调用它并在运行我的测试时工作,

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

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

2 个答案:

答案 0 :(得分:2)

您可以使用命名空间unbind特定的点击处理程序。

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

Example on jsfiddle

答案 1 :(得分:0)

请检查:DEMO

<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');

REFERENCE