2016-08-19 18 views
0

私は頻繁に使用するこのプラグインを書いていますが、ほとんどの場合、私はtrueの場合にのみチェックしています。しかし、結果がfalseかどうかを知る必要があります。成功と失敗のコールバックを持つjQueryプラグイン

私は関数内にsuccessfailureコールバックが必要だと思いますが、返す方法を理解できません。延期と約束は今、脳細胞を破壊している。

jQuery.fn.exists = function(fn) { 
    if (this.length > 0) { 
     var f = arguments[0]; 
     arguments[0] = function(e) { 
      f(e); 
     } 
     fn.apply(this, arguments); 
     return fn ? this.bind(name, fn) : this.trigger(name); 
    } else { 
     return this.length > 0; 
    } 
} 
+0

ここには非同期コードはありませんので、プラグインのパラメータとして2つの機能を取り、必要に応じて呼び出すことができます。 –

答えて

0

あなたが例を提供することができれば、それは有用であろう、このプラグインを行い、どのようなあなたの最終結果がなることは私には少し不明であるものの目的。

しかし、私は約束を知っている、以下を見てください。

jQuery.fn.exists = function(fn) { 
    var deferredObj = jQuery.Deferred(); 
    if (this.length > 0) { 
     var f = arguments[0]; 
     arguments[0] = function(e) { 
      f(e); 
     } 
     fn.apply(this, arguments); 
     if(fn) { this.bind(name, fn) 
     } else { this.trigger(name)} ; 
     deferredObj.resolve("some success value"); 
    } else { 
     deferredObj.reject("Length is not greater then 0"); 
    } 
    return deferredObj.promise; 
} 

コードを使用すると、私は今まで、シンプルなリターンブールで十分だろうか約束を使用して何の利益を見ていないので、何の非同期事業を展開していない追加したスニペット。

codepenの例は、問題の内容を明確にするのに役立ちます。

関連する問題