jquery - How to re-use $.when() with Deferred -
मैं एक jQuery डिफरेड का पुन: उपयोग करना चाहूंगा HTML:
& lt; form id = "theform" class = "form-horizontal" action = "" method = "post" & gt; & Lt; div वर्ग = "फॉर्म-एक्शन" & gt; & Lt; बटन प्रकार = "सबमिट करें" वर्ग = "बीटीएन बीटीएन-प्राथमिक" & gt; कुछ करो & lt; / बटन & gt; & Lt; / div & gt; & Lt; / प्रपत्र & gt;
जावास्क्रिप्ट:
var adefred = $। निष्क्रिय (); Var doSomething = function () {console.log ('doSomething' में); aDeferred.resolve (); Console.log ('स्थिति को हल करने के बाद:' + adefred.state ()); } $ ('# TheForm')। Submit (फ़ंक्शन (इवेंट) {event.preventDefault (); console.log ('सबमिट करें में राज्य:' + adferred.state ()); doSomething ();}); $। जब (एडेडर्ड) .done (function () {console.log ('हम कर रहे हैं'); adeferred = $। निष्क्रिय ();});
->
पहली बार बटन पर क्लिक किया जाता है, मैं अनुक्रम को समझता हूं:
सबमिट करें: सबमिट करने में लंबित हम हल करने के बाद राज्य कर रहे हैं: लंबित
लेकिन पहले क्लिक के बाद, हालांकि आस्थगित हल हो गया है, $। जब ()। Done ()
निष्पादित नहीं है
हालांकि, अगर मैं $। ले जाता हूं
कोड> फ़ंक्शन सबमिट करें, यह ठीक काम करता है:
$ ('# theform')। सबमिट करें (फ़ंक्शन (इवेंट) {event.preventDefault (); console.log ('सबमिट करें में राज्य : 'Adeferred.state ()); doSomething (); $। जब (एडेडर्ड) .done (function () {console.log (' हम कर रहे हैं '); adeferred = $ .Deferred ();})}} );
क्या कोई ये क्यों समझा सकता है?
Comments
Post a Comment