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 に答える