jQuery插件:回调选项必须返回false(不工作)

时间:2013-09-17 11:42:14

标签: javascript jquery jquery-plugins

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

所以回调正在运行但返回false不是(它必须是返回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

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

2 个答案:

答案 0 :(得分:0)

options.onValidate.call(this);

返回false,但无法停止执行单击处理程序。你应该使用:

if(typeof options.onValidate == 'function'){
   var result = options.onValidate.call(this);
   if(result === false) return;
}

答案 1 :(得分: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
    }
});