有一个烦人的网站,它通过使用
<div onclick=>
而不是 <a href=>
来阻止“在新选项卡中打开”的尝试。我使用 jQuery 编写了一个书签,它创建了一个包装器 <a>
标签,并将其插入到其内容周围的 <div>
中。
如何删除原来的
onclick
处理程序?
尚未提及:
$('#myId')[0].onclick = null; // remove the inline onclick() event
未经测试,但是...
$("selector").removeAttr("onclick");
我想你已经尝试过了
$("selector").unbind("click");
在某些情况下,将
onclick
设置为 null
不起作用,但这应该始终有效:
document.getElementById("myId").setAttribute("onclick", "");
element.removeAttribute('onclick');
就是这样。 实际上删除了监听器。 其他方法则不然——它仍然有效。 请参阅开发工具。截图如下。
留下失效的监听器通常没什么大不了的,但如果你有很多这样的监听器,它们会浪费CPU,并且你的页面或应用程序的性能会下降。
而且,它仍然像某种孤儿太监一样在你的代码中活着,这有点丑陋。
有点惊讶这个问题已经存在了近 15 年了,但从来没有一个正确的答案......尽管最后一个有正确的想法,除了“未经测试”的答案哈哈。
把这个扔在那里,因为我确信有人遇到过这个问题,试图真正回答这个问题,正确地,如果没有真正正确地回答,可能会导致问题。
消除影响并不等同于消除原因。 有时还不够。