javascript - data-attribute not updating and onclick event still on it -


मुझे इस ऑनक्लिक इवेंट प्रभाव के साथ समस्या है:

  / * '#generateZip' * / $ ("# Generatezip [data-readyzip = 'start']")। क्लिक करें (फ़ंक्शन (इवेंट) {event.preventDefault (); / * change style / css * / $ ('# generatezip')। AddClass ( "अक्षम"); $ ('# generatezip')। Html ("& lt; i क्लास = \" fa fa-spinner fa-spin \ "& gt; & lt; / i & gt; प्रगति में है!); / * ज़िप को कॉल करें * / JQuery.ajax ({प्रकार: 'पोस्ट', यूआरएल: 'http://www.monde-du-rat.fr/API/zipMC.php', टाइमआउट: 8000, डेटाटाइप: 'पाठ', डेटा: { कॉल: 'हां'}, "सफलता": फ़ंक्शन (जेकएक्सएचआर, टेक्स्टस्टैटस, त्रुटि ट्राउवर) {console.log ("एजेएक्स सफलता :) - स्टेटट" + टेक्स्टस्टैटस); / * परिवर्तन विशेषताएँ / / $ ('# जनरेटजिप')। एट्रर ('डाटा-रेंजजिप', 'हां'); सेटटाइमआउट (तैयारजिप, 3000);}, "एरर": फ़ंक्शन (जेकएक्सएचआर, टेक्स्टस्टैटस, एफ़्रेशन ट्रॉवॉर्न) { Console.log ("AJAX विफल: / - statut" + पाठस्टैटस); / * परिवर्तन विशेषता * / $ ('# generatezip')। एट्र ('डेटा-रेज़ेपिप', 'नहीं'); SetTimeout (तैयारजिपफेल, 3000); }}); }); / * ReadyZip () * / फ़ंक्शन readyZip () {$ ('# generateZip')। RemoveClass ("अक्षम बीटीएन-प्राथमिक"); $ ( '# GenerateZip') addClass ( "btn-सफलता")।; $ ('# Generatezip')। Html ("डाउनलोड तैयार है!"); $ ('# Generatezip')। Attr ("href", "http://www.monde-du-rat.fr/resources/data/documentMC.zip"}} / * तैयार ज़िपफ़ेल () * / फ़ंक्शन readyZipFail () {$ ('# GenerateZip')। RemoveClass ("बीटीएन-प्राथमिक"); $ ( '# GenerateZip') addClass ( "btn-खतरे")।; $ ( '# GenerateZip') एचटीएमएल ( "समस्या")। }  

भले ही data-readyzip को "हां" मान में अपडेट किया गया हो, ऑनक्लिक ईवेंट अभी भी उस पर है और मैं अपनी फाइल को डाउनलोड करने में विफल हूं ... क्या गलत है?

< $ ("# generatezip [data-readyzip = 'start'] / div>

यह कोड:

 ] "। क्लिक करें (फ़ंक्शन ...  

सभी प्रासंगिक तत्वों को जब इसे चलाया गया था (और उन्हें एक क्लिक हैंडलर को हुक) ।

दो विकल्प:

  1. यदि आप चाहें, तो आप इसके बजाय इवेंट डेलिगेशन का उपयोग कर सकते हैं:

      $ (document) .on ("click", "#generateZip [data-readyzip = 'start']", फ़ंक्शन ...  

    उस हुक क्लिक ईवेंट दस्तावेज़ पर, और फिर यह देखने के लिए कि क्या यह चयनकर्ता से मेल खाते के तत्वों के माध्यम से पारित कर दिया गया है जबकि दस्तावेज़ पर तत्व से बुदबुदाते हुए जो घटना उत्पन्न हुई थी।

    दस्तावेज़ निश्चित रूप से, एक बहुत ही गहरा स्तर है कि वह है। हो सकता है कि आप एक कंटेनर पर मौजूद तत्व को हुक कर सकें।

  2. चूंकि केवल एक बटन है, आप बटन पर क्लिक करने पर हुक कर सकते हैं लेकिन केवल क्लिक पर कार्य करें प्रासंगिक विशेषता है:

      $ ("# generatezip")। क्लिक करें (फ़ंक्शन (ई) {if ($ (this) .attr ("data-readyzip")! == "प्रारंभ ") {// ऐसा मत करो; यदि आप रिटर्न की तरह डिफ़ॉल्ट को रोकने या बुदबुदाती को रद्द करें;} // ...  

Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -