无法阻止JQuery事件

时间:2017-11-13 08:10:27

标签: javascript jquery

以下是简化方案

$(function() {
  $('#btn').on('click', function() {
    alert('JQuery')
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id='btn' value="Button" onclick="alert('onclick');return false;" />

即使我返回false,也会调用两个警报。如何防止在准备好的事件中写入脚本?

2 个答案:

答案 0 :(得分:1)

您需要使用event.stopImmediatePropagation()来阻止调用同一事件的其他侦听器。

$(function() {
  $('#btn').on('click', function() {
    alert('JQuery')
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id='btn' value="Button" onclick="alert('onclick');event.stopImmediatePropagation();" />

答案 1 :(得分:0)

在调用警报功能之前,您应该停止警报(“点击”)。 通常可以使用函数

中使用的event.preventDefault()来完成

$(function() {
  $('#btn').on('click', function() {
    alert('JQuery')
  })
  function alert_first(event){
      event.stopPropagation();
  }
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id='btn' value="Button" onclick="alert_first();alert('click);"/>