2013-04-23 6 views
5

क्षमा करें यदि यह सरल है; मैं JQuery के लिए नया हूँ। मैंने this जैसे प्रश्नों को खोज और पाया है, लेकिन वे मेरे प्रश्न का काफी जवाब नहीं दे रहे हैं।ब्राउज़र स्टॉप बटन पर कार्रवाई करें

मैं JQuery का उपयोग कर रहा कार्रवाई है कि काफी समय लग के लिए एक गूंगा प्रगति संकेतक दिखाने के लिए:

$(document).ready(function() { 
    $('form').submit(function() { 
     $('#progress').show(); 
    }); 
}); 

उपयोगकर्ता प्रपत्र बटन क्लिक करता है, मैं तो बस एक एनिमेटेड GIF के साथ एक div दिखा। यह div पृष्ठ के दृश्य के शेष समय के लिए दृश्यमान है। फ़ॉर्म की कार्रवाई पूरी होने के बाद, एक नया पृष्ठ लोड होता है।

यह अच्छी तरह से काम करता है, लेकिन यदि कार्रवाई पूर्ण होने से पहले ब्राउज़र में उपयोगकर्ता "रोक" पर क्लिक करता है तो क्या होगा? मैं div कैसे गायब कर सकता हूँ? क्या इस घटना को पकड़ने का कोई तरीका है, या क्या पूरी स्थिति को संभालने का कोई बेहतर तरीका है?

आपकी मदद के लिए धन्यवाद।

+0

यह संभावना नहीं है कि आप उस घटना पर कब्जा कर सकते हैं:

आप क्या कोशिश कर सकते हैं प्रगति संवाद छोटे समय समाप्ति के बाद गायब करने के लिए है। लेकिन AJAX का उपयोग करके अपना फॉर्म डेटा जमा करना बेहतर तरीका होगा। शायद [इसे देखें] (http://stackoverflow.com/questions/1960240/jquery-ajax-submit-form) – musefan

+0

एक "ऑनस्टॉप" ईवेंट है, यह क्रॉस-ब्राउज़र नहीं है और बहुत विश्वसनीय नहीं है। – Xotic750

+0

क्या आप सिर्फ div का चयन कर सकते हैं और इसे हटा सकते हैं? कुछ ऐसा: '$ ('# प्रगति')। हटाएं()' इसे डीओएम से बाहर ले जाएगा। यह जो कुछ भी हो रहा है उसे रोक नहीं पाएगा। ऐसा करने के लिए आप कार्रवाई को कैसे चला रहे हैं इस पर आधारित अन्य कार्रवाइयों की आवश्यकता होगी। – ckersch

उत्तर

0

आप इसे संभालने के लिए "ऑनस्टॉप" ईवेंट का उपयोग कर सकते हैं, लेकिन यह केवल आईई के लिए काम करेगा। मुझे लगता है कि आप अन्य ब्राउज़रों के लिए ऐसी घटना को संभाल नहीं सकते हैं।

$('form').submit(function() { 
    $('#progress').show(); 
    setTimeout(function(){ 
      $('#progress').hide(); 
    },3000); 
}); 
+0

हां, मैंने निष्कर्ष निकाला है कि यह संभव नहीं है। हालांकि, एक टाइमआउट के बाद यह गायब हो जाता है वास्तव में मदद नहीं करता है। यह इसे और भी भ्रमित कर देता है: कार्य पूरा होने से पहले संवाद बॉक्स गायब हो जाएगा (उपयोगकर्ता को यह असफल लगता है); या जब वे रुक जाएंगे तो गायब होने में कुछ समय लगेगा (उपयोगकर्ता को लगता है कि यह अभी भी जा रहा है); अथवा दोनों। –

संबंधित मुद्दे