如何停止javascript onclick事件

时间:2015-02-10 08:16:41

标签: javascript jquery

我有外部链接,使用javascript onclick事件呈现图像。

我需要停止此点击事件。我该怎么做?

例如:

Html is render by external script:
<div class="demo-link">
<img alt="" onclick="verifylock();" src="https://example.com" style="cursor:pointer;cursor:hand">
</div>

我用jquery尝试了这个但没有运气:

$(".demo-link > img").click(function(e){
    e.preventDefault();
});

5 个答案:

答案 0 :(得分:1)

dom准备好后,您可以删除onclick值:

$('.demo-link > img').attr('onclick','').unbind('click');

Working Demo

答案 1 :(得分:1)

你总是可以从onClick事件处理程序,调用preventDefault,stopImmediatePropagation或其他方法返回false,但是因为在onjQuery onclick之前调用了HTML onclick,所以这里没有用。如果你不想简单地删除&#39; onclick&#39;从HTML中,您可以通过编程方式进行更改(甚至可以使用jquery data()方法进行存储,以备将来使用)。

$(".demo-link > img").each(function(e) {
   $(this).onclick = function() { // overriding the onclick
       return false;
   }
});

下面的工作代码段:

&#13;
&#13;
function defaultOnClick() {
  alert('Default event handler invoked!');
}

$('.clickable').each(function() {
  $(this).data('onClickBackup', this.onclick);

  this.onclick = function(event) {
    alert('Overriden onclick');
    return false;

    // if you need to ever call the original onclick, then call below
    // $(this).data('onClickBackup').call(this, event || window.event);
  };
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div class="clickable" onclick="defaultOnClick()">Click me!</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

$(".demo-link > img").click(function(e){
   return false;
});

答案 3 :(得分:0)

您正在使用img标签中的onclick编写事件并单击并调用函数。所以从img标签中删除onclick,如。

<img alt="" src="https://example.com" style="cursor:pointer;cursor:hand">

如果你想调用一个函数verifylock()从处理程序中调用它来点击

答案 4 :(得分:0)

使用return false;

尝试使用您自己的代码
<img alt="" onclick="verifylock(); return false;" src="https://example.com" style="cursor:pointer;cursor:hand">
</div>