Javascript jQuery(1.8)-取消剩余的事件链
我有两个Javascript jQuery(1.8)-取消剩余的事件链,javascript,jquery,Javascript,Jquery,我有两个submit处理程序,它们按以下顺序添加: 首先在页面的特定代码中添加此代码: function validateOnSubmit() { //sacar el rojo de textfield de producto console.log("pre-submit"); if (currentRestrictions == null) { //debe seleccionar un producto $("#invalidPro
submit
处理程序,它们按以下顺序添加:
首先在页面的特定代码中添加此代码:
function validateOnSubmit() {
//sacar el rojo de textfield de producto
console.log("pre-submit");
if (currentRestrictions == null) {
//debe seleccionar un producto
$("#invalidProductDialog").dialog("open");
return false;
} else if (!currentRestrictions.allows($("#largo").val(), $("#ancho").val(), $("#calibre").val())) {
//hay un error de validacion
$("#invalidDimensionsDialog").dialog("open");
return false;
}
}
稍后在页面布局中添加了这个(我使用的是Yii框架,尽管它与问题无关):
我测试了它们是否按顺序运行(考虑其中的两条消息日志指令),以及它们是否按正确的顺序运行(即先执行validateOnSubmit,然后执行DoublePost检查器)
但是,我希望validateOnSubmit中的返回false
会切断事件链(即运行validateOnSubmit
并且在返回false之后不会运行双后置检查程序),但是在返回false
之后(无论是validateOnSubmit
函数中的两个原因中的哪一个)运行双事后检查处理程序。我认为在jQuery1.8中,使用返回false将切断事件链
Q:当两种情况中的一种发生时,我如何切断事件链?i、 e.当前在validateOnSubmit
上执行返回false
的条件似乎jQuery没有通过到达返回false
来切断事件链。预期的解决办法应该是:
function eventHandler(e) {
//...
e.stopImmediatePropagation();
return false;
//...
}
在返回false
之前添加stopImmediatePropagation
调用,使其保持一致
(这里又有一棵风滚草?)
function eventHandler(e) {
//...
e.stopImmediatePropagation();
return false;
//...
}