javascript - 如何停止/暂停从另一个 onclick 事件执行 jquery 更改事件?

标签 javascript jquery event-handling jquery-events

我有一个 jQuery 更改事件,它在文本框更改后触发,
只有当文本框失去焦点时才会触发该事件。
如果用户下一步是按下取消按钮,则会触发更改事件,然后也会触发取消按钮的 onclick, 但我想“杀死”更改事件,我希望它来自 onclick 事件。
我知道在 jQuery 中您可以对事件进行某种控制。

<input id="change" type="text" />
<input id="cancel" type="button" value="Cancel" onclick="return cancelEvent(this);" />


$(function () 
{
   $('#change').live('change', function() {
    alert('changed');
   });

});

function cancelEvent(e){
    //kill the change event and continue
    alert('cancel');
    return false;
}

如果我杀死然后重新绑定(bind)事件,有一个解决方案:

$('#changeButton').die('change',..).live('change',. ..); ,

但它必须是一个更有效的解决方案。

这是 a jsbin link你可以在哪里玩它!
希望这更容易理解。
欢迎对问题做出任何贡献。

最佳答案

编辑 #1

看来我现在明白你想要什么了,所以请忽略我之前的回答。相反,看看 this example .在获得焦点时保存控件的值。如果按下取消按钮,则恢复值,即使更改已提交。

编辑 #2

Same example with one less event handler

关于javascript - 如何停止/暂停从另一个 onclick 事件执行 jquery 更改事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6676018/

相关文章:

jquery - 仅当事件处理程序尚不存在时,如何才能绑定(bind)该事件处理程序?

matlab - 是否可以通过继承来扩展图形对象的功能?

javascript - Backbone subview 和事件解除绑定(bind)

javascript - 如何将 $(document).ready(function() 添加到 joomla

javascript - 在 Javascript 代码中使用 preg_match_all 匹配

jquery - 通过 getJSON 将 get 变量发送到 php 文件?

jQuery:将 wmode 设置为 Youtube 视频以进行 z-index 处理

javascript - 以 MMM d, yyyy 格式对日期进行排序

javascript - 关于 YUI 压缩器和 javascript

javascript - 如何在 Javascript 中打开下载对话框?