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?
答案 0 :(得分:212)
旧路(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>
答案 1 :(得分:57)
我知道这已经很老了,但当一个迷路的陌生人发现这个问题寻找答案时(就像我一样)那么这是最好的方法,而不是使用removeAttr():
$element.prop("onclick", null);
“使用.removeAttr()删除内联onclick事件处理程序无法在Internet Explorer 6,7或8中实现所需的效果。为避免潜在问题,请使用.prop()代替”
答案 2 :(得分:16)
如果您使用的是jquery 1.7
$('html').off('click');
否则
$('html').unbind('click');
答案 3 :(得分:14)
onclick
属性假设您已将您的点击事件内联添加,如下所示:
<button id="myButton" onclick="alert('test')">Married</button>
然后,你可以删除这样的事件:
$("#myButton").prop('onclick', null); // Removes 'onclick' property if found
click
事件侦听器假设您通过定义事件侦听器添加了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
答案 4 :(得分:6)
在尝试使用bind,unbind,on,off,click,attr,removeAttr,prop之后我努力工作了。 所以,我有以下场景:在我的HTML中我没有附加任何内联onclick处理程序。
然后在我的Javascript中,我使用以下内容添加内联onclick处理程序:
$(element).attr('onclick','myFunction()');
要稍后从Javascript中删除它,我使用了以下内容:
$(element).prop('onclick',null);
这是我在Javascript中以动态方式绑定和取消绑定点击事件的方式。切记不要在元素中插入任何内联的onclick处理程序。
答案 5 :(得分:6)
使用removeAttr非常容易。
$(element).removeAttr("onclick");
答案 6 :(得分:1)
如果onclick事件不是直接在元素上,而是来自父元素,该怎么办? 这应该有效:
$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
e.preventDefault();
e.stopPropagation();
return false;
});
答案 7 :(得分:0)
如果您通过ID取消绑定onclick事件,请尝试此操作然后使用:
$('#youLinkID').attr('onclick','').unbind('click');
如果您通过Class取消绑定onclick事件,请尝试此操作然后使用:
$('.className').attr('onclick','').unbind('click');