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();
}
});