jQuery स्लाइडअप ()। हटाने () हटाने से पहले स्लाइडअप एनीमेशन दिखाने के लिए प्रतीत नहीं होता है


94

मेरे पास जावास्क्रिप्ट की यह रेखा है और जो व्यवहार मैं देख रहा हूं वह यह है कि selectedLi"स्लाइडिंग अप" के बिना तुरन्त गायब हो जाता है। यह वह व्यवहार नहीं है जिसकी मुझे उम्मीद थी।

मुझे क्या करना चाहिए ताकि selectedLiइसे हटाने से पहले स्लाइड ऊपर हो जाए?

selectedLi.slideUp("normal").remove();

जवाबों:


197

स्लाइडअप में कॉलबैक आर्ग में निकालने के लिए कॉल डालकर इसे ठीक करने में सक्षम हो सकता है?

जैसे

selectedLi.slideUp("normal", function() { $(this).remove(); } );

4
ध्यान दें कि "धीमी" और "तेज" केवल गति हैं। अन्य गति या तो मिलीसेकंड में होने की आवश्यकता है या वे 400 में डिफ़ॉल्ट होंगे। keyframesandcode.com/resources/javascript/deconstructed/jquery/…
bendman

19

आपको अधिक स्पष्ट होने की आवश्यकता है: "यह" कहने के बजाय (जो मुझे सहमत होना चाहिए कि काम करना चाहिए), आपको यह करना चाहिए:

$("#yourdiv").slideUp(1000, function() {
    $(this).remove();
});

2
SORRY = मैं अपनी आईडी निकालना भूल गया, वह होना चाहिए: $ ('# yourdiv')। SlideUp (1000, फंक्शन () {$ ('# yourdiv'); remove ();});
ब्लेक

12
$ के बजाय $ (यह) का उपयोग करना ("# yourdiv") अधिक अनुकूलित है क्योंकि jQuery को नोड की तलाश करने की आवश्यकता नहीं है।
मैक्सिमबर्नार्ड

$("#yourdiv")इसके बजाय का उपयोग $(this)पूरी तरह से बेमानी है और यही कारण है कि यह कोड ओपी की समस्या को ठीक करता है। यह कोड समस्या को ठीक करता है क्योंकि यह completeकॉलबैक का उपयोग करता है ।
गैविन

8

सबसे आसान तरीका स्लाइड के अंदर "रिमूव ()" फ़ंक्शन को कॉल कर रहा है, जैसा कि अन्य लोगों ने कहा है, इस उदाहरण के रूप में:

$("#yourdiv").slideUp("normal", function() {
    $(this).remove();
});

इसे अनाम फ़ंक्शन () को हटाने से रोकने के लिए () को स्लाइडअप समाप्त होने से पहले निष्पादित किया जाना चाहिए। एक अन्य समान तरीका jQuery फ़ंक्शन "वादा ()" का उपयोग करना है। उन लोगों के लिए बेहतर है जो आत्म-व्याख्यात्मक कोड मुझे पसंद करते हैं;)

$("#yourdiv").slideUp("normal").promise().done(function() {
    $(this).remove();
});

3

वादों का उपयोग करके आप कई एनिमेशन प्राप्त करने की प्रतीक्षा कर सकते हैं, जैसे:

selectedLi.slideUp({duration: 5000, queue: false})
.fadeOut({duration: 3000, queue: false})
.promise().done(function() {
    selectedLi.remove()
})

-2
selectedLi.slideUp(200, this.remove);

1
मैंने परीक्षण किया - यह ऊपर खिसकने के बाद तत्व को नहीं हटाता है।
कॉन्स्टेंटिन स्पिरिन

सीधे तत्व को छुपाता है, लेकिन वास्तव में इसे डोम से नहीं हटाता है।
andreszs
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.