Events 如何从jQuery触发器方法获取布尔返回值?
我想使用jQuery的触发器方法触发一个自定义事件:Events 如何从jQuery触发器方法获取布尔返回值?,events,jquery-validate,validation,jquery,Events,Jquery Validate,Validation,Jquery,我想使用jQuery的触发器方法触发一个自定义事件: $(wizard).trigger('validatingStepValues'); 然后,在向导的当前步骤代码中,我订阅此事件,如下所示: $(wizard).bind('validatingStepValues', function (){ // Validating step's form data here; returning false on invalid state. }); 然后,在我的向导中,如果验证过程返回一
$(wizard).trigger('validatingStepValues');
然后,在向导的当前步骤代码中,我订阅此事件,如下所示:
$(wizard).bind('validatingStepValues', function (){
// Validating step's form data here; returning false on invalid state.
});
然后,在我的向导中,如果验证过程返回一个假值,我想再次阻止用户进入下一步?我想要一些像:
$(wizard).trigger('validatingStepValues', validReturnCallback, invalidReturnCallback)
function wizardValidator(successCallback, failureCallback) {
return function() {
// Validating step's form data here;
if (wasValid && successCallback) {
successCallback();
}
else if (! wasValid && failureCallback) {
failureCallback();
}
return wasValid;
};
}
$(wizard).bind('validatingStepValues', wizardValidator(validReturnCallback, invalidReturnCallback));
您是否考虑过使用类似于:
$(wizard).trigger('validatingStepValues', validReturnCallback, invalidReturnCallback)
function wizardValidator(successCallback, failureCallback) {
return function() {
// Validating step's form data here;
if (wasValid && successCallback) {
successCallback();
}
else if (! wasValid && failureCallback) {
failureCallback();
}
return wasValid;
};
}
$(wizard).bind('validatingStepValues', wizardValidator(validReturnCallback, invalidReturnCallback));
这要求您知道在绑定事件侦听器时要使用的回调。如果希望能够在不同时间使用不同的回调函数,可以定义其他事件类型,如:
$(wizard).bind('validatingStep2Values', wizardValidator(validStep2ReturnCallback, invalidStep2ReturnCallback));
$(wizard).bind('validatingStep3Values', wizardValidator(validStep3ReturnCallback, invalidStep3ReturnCallback));
或者,通过调用
trigger()
创建的事件会向上传播DOM层次结构。返回false
事件处理程序将取消此传播。因此,您可以将所需的成功回调函数绑定为向导父节点上的事件侦听器。然而,这并不能允许执行失败回调 这意味着对于每一步,我都应该有一个独特的事件。我认为这不合适。但是我不明白第二部分。也许这太技术化了:);)。但是我非常感谢你的回复。