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

时间:2011-07-13 08:20:17

标签: javascript javascript-events event-handling jquery

我有一个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;
}

有一个解决方案,如果我杀了然后重新绑定事件:
$('#changeButton').die('change',..).live('change',...);

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

这是a jsbin link你可以玩的地方! 希望这更容易理解。
欢迎任何对该问题的贡献

1 个答案:

答案 0 :(得分:2)

编辑#1

似乎我现在明白你想要什么,所以忽略我以前的答案。相反,请查看this example。在焦点上保存控件的值。如果按下取消按钮,则恢复该值,即使在进行了更改后也是如此。

编辑#2

Same example with one less event handler

相关问题