ajax - jQuery UI dialog won't open in Internet Explorer -
मेरे पास एक jQuery UI संवाद है:
$ ("# dialog")। संवाद ({Modal: true, closeOnScape: false, resizable: false, autoOpen: false, open: function () {$ (".ui-dialog-titlebar")। Hide ();}});
मैं एक AJAX कॉल के ठीक पहले इस संवाद को खोलने की कोशिश कर रहा हूं। यह फ़ायरफ़ॉक्स का उपयोग कर रहा है, लेकिन आईई के साथ यह खुला नहीं है, जब तक कि मैं एक चेतावनी डालता हूं, बस संवाद खोलने के बाद। क्या कोई मुझे बता सकता है कि समस्या क्या हो सकती है? मैं निम्नलिखित कोड का उपयोग कर रहा हूं:
$ ("बटन")। क्लिक करें (फ़ंक्शन () {$ ("# dialog")। संवाद ('ओपन'); // अलर्ट (' Test '); // अगर मैं यह चेतावनी रखता हूं, तो संवाद $ .जाक्स ({प्रकार: "पोस्ट", url: "test.txt", async: false, डेटा प्रकार: "टेक्स्ट", सफलता: फ़ंक्शन (वापसी टेक्स्ट) ) ($ ("# डायलॉग")। डायलॉग ('क्लोज़'); $ ("# टेटेरेआ")। पाठ (वापसी टेक्स्ट);}, त्रुटि: फ़ंक्शन () {$ ("# डायलॉग")। संवाद ('बंद ');}}};});
संभावित कोड के कारण open
एसिंक्रोनस पूरा होता है, इसलिए संभवतः क्या हो रहा है यह है कि IE धीमी जावास्क्रिप्ट व्याख्या के कारण, सफलता
या त्रुटि
कॉलबैक (जो भी अतुल्यकालिक हैं) में संवाद को बंद करने के लिए कोड पर्याप्त रूप से कार्यान्वित कर रहे हैं खुले
के लिए कि आप कभी भी खोले गए संवाद को ध्यान नहीं देते मैं अनुमान लगा रहा हूं कि आपका AJAX कॉल बहुत तेज़ी से पूरा कर रहा है।
इस के चारों ओर एक तरीका यह है कि आपका एक AJAX कॉल को setTimeout
ब्लॉक में डाल दें।
$ ("बटन") क्लिक करें (फ़ंक्शन () {$ ("# डायलॉग")। संवाद ('ओपन'); सेट टाइमआउट (फ़ंक्शन () {$। एजेक्स ({type: "POST", url : "testing.txt", async: झूठे, डेटाप्रकार: "पाठ", सफलता:।। समारोह (returnText) {$ ( "# संवाद") संवाद ( 'पास'); $ ( "# पाठ क्षेत्र") पाठ (returnText );}, त्रुटि: कार्य () {$ ("# डायलॉग")। संवाद ('बंद');}});}, 1);});
यह बस $। एजेक्स
कॉल को कतार देगा जो कि खुला
ईवेंट को पूरा करने की अनुमति देगा। जॉन रेसिग के पास एक अच्छा लिखना है कि इस प्रकार की चीज़ क्यों काम करती है -।
Comments
Post a Comment