2010-12-06 10 views
11

मैं एक div जोड़ना चाहता हूं और 5 सेकंड के बाद इसे हटा देना चाहता हूं। मैं करने की कोशिश की5 सेकंड के बाद नया div हटाएं

$("#mainContentTD").prepend("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>").delay(5000).remove("this:first-child"); 

उत्तर

26

आप इस तरह setTimeout उपयोग कर सकते हैं:

setTimeout(function(){ 
    $('#divID').remove(); 
}, 5000); 

5000 (एमएस) 5 सेकंड का मतलब है। आपको अपने स्वयं के div/element id के साथ divID को प्रतिस्थापित करना चाहिए।

आप यह सुनिश्चित करें कि div पहले length का उपयोग कर मौजूद कर सकते हैं:

setTimeout(function(){ 
    if ($('#divID').length > 0) { 
    $('#divID').remove(); 
    } 
}, 5000) 
+2

इसके लायक है कि ध्यान देने योग्य बात div अस्तित्व के लिए जांच पूरी तरह से अनावश्यक है क्योंकि jQuery एक खाली jQuery संग्रह पर $ .fn.remove() को कॉल करते समय त्रुटि नहीं करेगा। – tbranyen

6

.delay() विधि केवल तरीकों कि मानक प्रभाव कतार या एक कस्टम कतार का उपयोग के साथ काम करता है।

.delay() विधि पंक्तिबद्ध jQuery प्रभावों के बीच देरी के लिए सबसे अच्छी है। क्योंकि यह सीमित है-उदाहरण के लिए, देरी को रद्द करने का कोई तरीका नहीं है- .delay() जावास्क्रिप्ट के मूल setTimeout फ़ंक्शन के प्रतिस्थापन नहीं है, जो कुछ उपयोग मामलों के लिए अधिक उपयुक्त हो सकता है। (Demo)

var $elm = $("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>"); 
$("#mainContentTD").prepend($elm); 
setTimeout(function() { 
    $elm.remove(); 
}, 5000); 

या, आप एक प्रभाव विधि इस्तेमाल कर सकते हैं तत्व को दूर करने के लिए:

Ie, आप या तो setTimeout() इस्तेमाल कर सकते हैं (Demo)

$("#mainContentTD") 
    .prepend("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>") 
    .children(':first') 
    .delay(5000) 
    .fadeOut(100); 
+0

हम्म, शायद मुझे पोस्ट करने से पहले अपडेट किया जाना चाहिए :) हालांकि, पहला भाग * उपयोगी हो सकता है। – jensgram

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