Javascript 阻止执行后续事件绑定

Javascript 阻止执行后续事件绑定,javascript,jquery,Javascript,Jquery,我在一个元素上有多个事件绑定,比如#myDiv: $("#myDiv").click(function(e) { // Do something }); $("#myDiv").click(function(e) { // Do something more }); $("#myDiv").click(function(e) { // Do something more }); 我要做的是创建一个验证绑定,以便仅当验证成功时才执行进一步的绑定: 将创建一个名为er

我在一个元素上有多个事件绑定,比如
#myDiv

$("#myDiv").click(function(e) {
    // Do something
});

$("#myDiv").click(function(e) {
    // Do something more
});

$("#myDiv").click(function(e) {
    // Do something more
});
我要做的是创建一个验证绑定,以便仅当验证成功时才执行进一步的绑定:


将创建一个名为
error
的全局变量,并在所有绑定中添加一个条件,使其在
error==true
时不执行:

var error = false;

// validate
$("#myDiv").click(function(e) {
    ...
    error = true;
});

$("#myDiv").click(function(e) {
    if(error) return false;
    // Do something
});

$("#myDiv").click(function(e) {
    if(error) return false;
    // Do something more
});
但是有没有一种方法可以在不在所有绑定中添加if条件的情况下防止进一步执行?

尝试使用

试用


您正在寻找的方法是e.stopImmediatePropagation(); 这将阻止任何其他处理程序在此事件之后运行

以下是一个例子:

在本例中,您可以将错误的值设置为false,这将触发第三个事件处理程序。如果设置为true,则不会发生任何事情,也不会触发任何处理程序


jquery文档可以在这里找到:

您正在寻找的方法是e.stopImmediatePropagation(); 这将阻止任何其他处理程序在此事件之后运行

以下是一个例子:

在本例中,您可以将错误的值设置为false,这将触发第三个事件处理程序。如果设置为true,则不会发生任何事情,也不会触发任何处理程序

jquery文档可以在以下位置找到:

var error = false;

// validate
$("#myDiv").click(function(e) {
    ...
    error = true;
});

$("#myDiv").click(function(e) {
    if(error) return false;
    // Do something
});

$("#myDiv").click(function(e) {
    if(error) return false;
    // Do something more
});
$("#myDiv").click(function(e) {
    var error = false;
    // ... Validate
    error = true;
    if(error) {
        // Stop further bindings. (So 'Success!' won't be appended.)
        e.stopImmediatePropagation(); 
        return false;
    }
});
$("#myDiv").click(function(e) {
    var error = false;
    // ... Validate
    error = true;
    if(error){
     e.stopImmediatePropagation();
    }
});