110

PHP代码:

<a id="a$id" onclick="check($id,1)" href="javascript:void(0)"  class="black">Qualify</a>

我想删除,onclick="check($id,1)所以链接不能被点击或“check($id,1)不会被解雇。我怎么能用 JQuery 做到这一点?

4

8 回答 8

267

旧方式(1.7 之前):

$("...").attr("onclick", "").unbind("click");

新方式(1.7+):

$("...").prop("onclick", null).off("click");

(将 ... 替换为您需要的选择器。)

// use the "[attr=value]" syntax to avoid syntax errors with special characters (like "$")
$('[id="a$id"]').prop('onclick',null).off('click');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


<a id="a$id" onclick="alert('get rid of this')" href="javascript:void(0)"  class="black">Qualify</a>

于 2009-11-06T14:04:00.423 回答
59

我知道这已经很老了,但是当一个迷路的陌生人发现这个问题正在寻找答案(就像我一样)时,这是最好的方法,而不是使用 removeAttr():

$element.prop("onclick", null);

引用jQuerys 官方独库

“使用 .removeAttr() 删除内联 onclick 事件处理程序在 Internet Explorer 6、7 或 8 中无法达到预期效果。为避免潜在问题,请改用 .prop()”

于 2011-07-26T13:49:06.120 回答
28

移除onclick财产

假设您内联添加了点击事件,如下所示:

<button id="myButton" onclick="alert('test')">Married</button>

然后,您可以像这样删除事件:

$("#myButton").prop('onclick', null); // Removes 'onclick' property if found

删除click事件侦听器

假设您通过定义事件侦听器添加了单击事件,如下所示:

$("button").on("click", function() { alert("clicked!"); });

...或像这样:

$("button").click(function() { alert("clicked!"); });

然后,您可以像这样删除事件:

$("#myButton").off('click');          // Removes other events if found

删除两者

如果您不确定您的事件是如何添加的,您可以将两者结合起来,如下所示:

$("#myButton").prop('onclick', null)  // Removes 'onclick' property if found
              .off('click');          // Removes other events if found
于 2016-03-30T01:37:20.940 回答
17

如果您使用的是 jquery 1.7

$('html').off('click');

别的

$('html').unbind('click');
于 2014-01-29T10:17:07.993 回答
11

使用 removeAttr 非常容易。

$(element).removeAttr("onclick");
于 2016-02-09T16:02:47.140 回答
5

在用 bind、unbind、on、off、click、attr、removeAttr、prop 努力尝试之后,我让它工作了。所以,我有以下情况:在我的 html 中,我没有附加任何内联 onclick 处理程序。

然后在我的 Javascript 中,我使用以下内容添加了一个内联 onclick 处理程序:

$(element).attr('onclick','myFunction()');

为了稍后从 Javascript 中删除它,我使用了以下内容:

$(element).prop('onclick',null);

这就是我在 Javascript 中动态地绑定和取消绑定点击事件的方式。请记住不要在您的元素中插入任何内联 onclick 处理程序。

于 2013-08-15T12:40:45.600 回答
2

如果 onclick 事件不是直接在元素上,而是来自父元素怎么办?这应该有效:

$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
    e.preventDefault();
    e.stopPropagation();
    return false;
});
于 2015-05-22T11:48:34.783 回答
0

如果您通过 ID 取消绑定 onclick 事件,请尝试此操作然后使用:

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

如果您通过 Class 取消绑定 onclick 事件,请尝试此操作然后使用:

$('.className').attr('onclick','').unbind('click');
于 2012-09-20T04:25:21.107 回答