উত্তর:
ক্লাসটি অপসারণ করতে আপনি একটি নতুন সারি আইটেম তৈরি করতে পারেন:
$("#div").addClass("error").delay(1000).queue(function(next){
$(this).removeClass("error");
next();
});
বা ডীকু পদ্ধতি ব্যবহার করে :
$("#div").addClass("error").delay(1000).queue(function(){
$(this).removeClass("error").dequeue();
});
আপনাকে যে কারণে কল করতে হবে next
বা dequeue
jQuery কে তা জানাতে হবে যে আপনি এই সারিবদ্ধ আইটেমটি দিয়ে এসেছেন এবং এটি পরের দিকে যেতে হবে।
AFAIK বিলম্ব পদ্ধতিটি কেবল সংখ্যার সিএসএস পরিবর্তনের জন্য কাজ করে।
অন্যান্য উদ্দেশ্যে জাভাস্ক্রিপ্ট একটি সেটটাইমআউট পদ্ধতি নিয়ে আসে:
window.setTimeout(function(){$("#div").removeClass("error");}, 1000);
আমি জানি এটি একটি খুব পুরানো পোস্ট তবে আমি কয়েকটি উত্তর উত্তরকে এক jQuery মোড়ক ফাংশনে সংযুক্ত করেছি যা শৃঙ্খলা সমর্থন করে। আশা করি এটি কারও উপকারে:
$.fn.queueAddClass = function(className) {
this.queue('fx', function(next) {
$(this).addClass(className);
next();
});
return this;
};
এবং এখানে একটি অপসারণ ক্লাসের মোড়ক দেওয়া আছে:
$.fn.queueRemoveClass = function(className) {
this.queue('fx', function(next) {
$(this).removeClass(className);
next();
});
return this;
};
এখন আপনি এই জাতীয় জিনিসগুলি করতে পারেন - 1 .error
সেকেন্ড অপেক্ষা করুন , 3 সিসি অপেক্ষা করুন , অপেক্ষা করুন, সরান .error
:
$('#div').delay(1000).queueAddClass('error').delay(2000).queueRemoveClass('error');
jQuery এর সিএসএস ম্যানিপুলেশনটি সারিবদ্ধ নয়, তবে আপনি এটি করে 'এফএক্স' সারির মধ্যে এটি সম্পাদন করতে পারেন:
$('#div').delay(1000).queue('fx', function() { $(this).removeClass('error'); });
সেটটাইমআউটকে কল করার মতো একই জিনিস তবে পরিবর্তে jQuery এর সারি মেকানিজম ব্যবহার করে।
অবশ্যই আপনি যদি jQuery এর প্রসারিত করেন তবে এটি আরও সহজ হবে:
$.fn.addClassDelay = function(className,delay) {
var $addClassDelayElement = $(this), $addClassName = className;
$addClassDelayElement.addClass($addClassName);
setTimeout(function(){
$addClassDelayElement.removeClass($addClassName);
},delay);
};
এর পরে আপনি এই ফাংশনটি অ্যাডক্লাসের মতো ব্যবহার করতে পারেন:
$('div').addClassDelay('clicked',1000);
return this
বিলম্ব একটি কাতারে কাজ করে। এবং যতদূর আমি জানি সিএসএস ম্যানিপুলেশন (অ্যানিমেটেড ব্যতীত) সজ্জিত নয়।
delay
কোনও কিউ ফাংশনে কাজ করে না, তাই আমাদের ব্যবহার করা উচিত setTimeout()
।
এবং আপনার জিনিস আলাদা করার দরকার নেই। আপনাকে যা করতে হবে তা হ'ল একটি setTimeOut
পদ্ধতিতে সমস্ত কিছু অন্তর্ভুক্ত করা :
setTimeout(function () {
$("#div").addClass("error").delay(1000).removeClass("error");
}, 1000);
এটা চেষ্টা কর:
function removeClassDelayed(jqObj, c, to) {
setTimeout(function() { jqObj.removeClass(c); }, to);
}
removeClassDelayed($("#div"), "error", 1000);
এই সহজ তীর ফান্ট চেষ্টা করুন:
setTimeout( () => { $("#div").addClass("error") }, 900 );
$("#div").addClassTemporarily("error",1000)