在下面的例子http://jsfiddle.net/anu4nits/449d5j8e/如何从onchange事件处理程序停止click事件的执行
<input type="text" id="in" /> <input type="button" value="click" id="button" /> $('#in').change(function() { console.log('change event'); dialog.dialog("open"); }); $('#button').on('click', function (e) { console.log('click event'); });
我附上两个事件一个是文本onchange事件和其他的就是点击按钮事件。如果我在文本框中写入某些内容并点击按钮,则应该分别执行change事件的处理程序和click事件的处理程序。但是,当我在变化事件的处理程序中调用模态对话框时,单击事件的处理程序没有得到执行,因为模态对话框不允许任何后台活动。但是这只与Chrome和Mozilla有关。在IE处理程序中,两个事件都得到执行。
我希望所有浏览器的一致行为,最好我不想在IE中执行点击处理程序。我也不想在全球范围内设置一些标志来进行状态检查。此外,我不能从按钮中分离事件,因为在我的应用程序按钮ID和它的处理程序在运行时生成。 是否有任何其他方式可以停止执行change事件处理程序中的click事件。
点击和更改都是单独的事件你不能停止从另一个这样的传播。您的代码将停止传播只有在dom树 – Ninja 2014-11-06 09:59:10
尝试该脚本中的change事件。它会阻止触发点击事件,因为首先发生更改事件 – shaN 2014-11-06 10:12:30
在哪个浏览器中执行此操作? – Ninja 2014-11-06 10:17:43