का उपयोग करके मैं अपना संवाद खोलने के तीन सेकंड बाद ऑटो-क्लोज़ करने का प्रयास कर रहा हूं। मैं निम्न विधियों की कोशिश की है:jQuery UI संवाद स्वत: बंद करें सेटटाइमआउट
setTimeout($("#mydialog").dialog('close'), 3000);
यहाँ यह संदर्भ में है:
$("#acknowledged-dialog").dialog({
height: 140,
modal: true
});
setTimeout($("#acknowledged-dialog").dialog('close'), 3000);
लेकिन इस विधि के साथ, यह भी प्रदर्शित नहीं करता है! मैं अनुमान लगा रहा हूं कि पृष्ठ पर दिखाए जाने के तुरंत बाद बंद विधि को बुलाया जा रहा है। लॉग कोई त्रुटि नहीं दिखाता है।
मैं भी dialogopen घटना के लिए बाध्य की कोशिश की है:
$("#acknowledged-dialog").bind('dialogopen', function(event, ui) {
setTimeout($(this).dialog('close'), 3000);
});
$("#acknowledged-dialog").dialog({
height: 140,
modal: true
});
संवाद से पता चलता है, लेकिन ऑटो बंद नहीं करता है। यहां लॉग में कोई त्रुटि नहीं है।
क्या मैं सेटटाइमआउट में $ के लिए तर्क में 'इस' का उपयोग करने में सक्षम नहीं हूं?
और नहीं, जब तक कि आप @toby का पालन न करें और फ़ंक्शन को लपेटें, मैंने पाया है कि मैं उपरोक्त कोड में setTimeout के लिए 'this' का उपयोग नहीं कर सकता। – DefyGravity
बस ध्यान देना चाहता था, ऐसी स्थितियों में जहां स्ट्रिंग eval काम नहीं करेगा (जैसे जब मैं क्रोम एक्सटेंशन बना रहा था), तो आप स्ट्रिंग को एक अज्ञात फ़ंक्शन में बदल सकते हैं। –
ध्यान दें कि यदि उपयोगकर्ता टाइमआउट से पहले मैन्युअल रूप से संवाद बंद कर देता है, तो उपर्युक्त कोड में टाइमर चलना जारी रहेगा और दूसरी बार संवाद बंद करने का प्रयास करेगा - यह ठीक है जब तक कि संवाद नष्ट नहीं हो जाता है। लेकिन यदि पहली बार टाइमआउट से पहले दूसरी बार संवाद प्रदर्शित होता है, तो पहला टाइमर जल्दी ही संवाद बंद कर देगा। –