iteye_3530 2008-10-21 11:48
浏览 294
已采纳

jQuery中如何在事件处理器中中断后续事件处理器的调用?

当给同一个元素的同一事件绑定多个事件处理器时,如何在某个事件处理器中中断后续处理的调用?
如下代码:
[code="js"]
$("#button").click(function(event) {
// handler 1
if ( ... ) {
return true;
}
else {
return false; // 希望返回false时,handler2及其它的处理器都不再被调用
}$("#button").click(function(event) {
// handler 2
if ( ... ) {
return true;
}
else {
return false;
}
[/code]

在上述代码中,如何实现handler1返回false时,不调用handler2?

  • 写回答

1条回答 默认 最新

  • iteye_20231 2008-10-21 22:04
    关注

    简单但是不优美的方法
    在element上设置一个标志,比如
    $("#button").click(function(event) {
    // handler 1
    if ( ... ) {
    this.clickcontinue=true;
    return true;
    }
    else {
    this.clickcontinue=false;
    return false; // 希望返回false时,handler2及其它的处理器都不再被调用
    }
    $("#button").click(function(event) {
    if(!this.clickcontinue) return;
    // handler 2
    if ( ... ) {
    return true;
    }
    else {
    return false;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?