jQuery স্লাইডআপ ()। অপসারণ () অপসারণের আগে স্লাইডআপ অ্যানিমেশন দেখায় বলে মনে হয় না


94

আমার কাছে জাভাস্ক্রিপ্টের এই লাইন রয়েছে এবং আমি যে আচরণটি দেখছি তা হ'ল selectedLi"স্লাইডিং" না করে তাত্ক্ষণিকভাবে অদৃশ্য হয়ে যায়। এটি এমন আচরণ নয় যা আমি প্রত্যাশা করেছিলাম।

আমার কী করা উচিত যাতে selectedLiস্লাইডগুলি সরানোর আগে উপরে উঠে যায়?

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

উত্তর:


198

স্লাইডআপে কলব্যাক আরগ এ সরিয়ে কল লাগিয়ে কি তা ঠিক করতে সক্ষম হতে পারে?

যেমন

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

4
মনে রাখবেন যে "ধীর" এবং "দ্রুত" কেবলমাত্র গতি। অন্যান্য গতি পারেন মিলিসেকেন্ডে হতে হবে অথবা তারা 400 ডিফল্ট করবে keyframesandcode.com/resources/javascript/deconstructed/jquery/...
bendman

19

আপনার আরও সুস্পষ্ট হওয়া দরকার: "এটি" বলার পরিবর্তে (যা আমি সম্মত করি যে কাজ করা উচিত) আপনার এই কাজটি করা উচিত:

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

4
দু: খ = আমি আমার আইডি মুছে ফেলতে ভুলে গেছি, তা হওয়া উচিত: $ ('# আপনারডিভ') sl
ব্লেক

12
Qu ("# 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);

4
আমি পরীক্ষা করেছি - এটি স্লাইডিংয়ের পরে উপাদানটি সরিয়ে দেয় না।
কনস্ট্যান্টিন স্পিরিন

কার্যকরভাবে উপাদানটি আড়াল করে, তবে এটি আসলে ডিওএম থেকে সরিয়ে দেয় না।
অ্যান্ড্রেসস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.