0

所以我构建了一个具有回调选项的插件。此回调用作验证部分,因此我们使用“return false”来停止插件,但我无法让它工作。

所以回调正在工作,但 return false 不是(它必须是 return false 而不是某种布尔变量)

//回调

$('.a').click(function(){

   if(typeof options.onValidate == 'function'){
      options.onValidate.call(this);
   }
    // if the callback has a return false then it should stop here
    // the rest of the code
});

// 选项

....options = {
   // more options
   onValidate:function(){
      //some validation code
      return false;//not working
   }
}
4

2 回答 2

0
options.onValidate.call(this);

返回 false,但它不能停止单击处理程序的执行。你应该使用:

if(typeof options.onValidate == 'function'){
   var result = options.onValidate.call(this);
   if(result === false) return;
}
于 2013-09-17T11:46:25.300 回答
0

您没有在代码中使用返回的布尔值。试试这个:

$('.a').click(function() {
    var isValid = false;
    if (typeof options.onValidate == 'function'){
        isValid = options.onValidate.call(this);
    }

    if (isValid) {
        // if the callback has a return false then it should stop here
        // the rest of the code
    }
});
于 2013-09-17T11:46:28.043 回答