আমি একটি ক্লাস যুক্ত করতে চাই, 2 সেকেন্ড অপেক্ষা করুন এবং অন্য ক্লাস যুক্ত করুন।
.addClass("load").wait(2sec).addClass("done");
অন্য কোন উপায় আছে?
আমি একটি ক্লাস যুক্ত করতে চাই, 2 সেকেন্ড অপেক্ষা করুন এবং অন্য ক্লাস যুক্ত করুন।
.addClass("load").wait(2sec).addClass("done");
অন্য কোন উপায় আছে?
উত্তর:
সেটটাইমআউট কিছু সময় বিলম্বের পরে (মিলি সেকেন্ডে পরিমাপ করা) কিছু কোড চালায়। তবে, একটি গুরুত্বপূর্ণ দ্রষ্টব্য: জাভাস্ক্রিপ্টের প্রকৃতির কারণে, টাইমার সেটআপ হওয়ার পরে বাকী কোডটি চালিয়ে যেতে থাকে:
$('#someid').addClass("load");
setTimeout(function(){
$('#someid').addClass("done");
}, 2000);
// Any code here will execute immediately after the 'load' class is added to the element.
হবে .delay()।
আপনি যদি এজেএক্স স্টাফটি করে থাকেন তবে আপনার সত্যিকার অর্থে কেবল "স্বয়ংক্রিয়ভাবে" লেখা উচিত নয় আপনার প্রতিক্রিয়াটির জন্য অপেক্ষা করা উচিত এবং এটি আসলে হয়েছে কিনা তা দেখতে হবে।
.removeClass('load')অন্যথায় আপনার উভয় ক্লাসে লোড এবং সম্পন্ন করতে চান যা সম্ভবত অনাকাঙ্ক্ষিত। আপনি যদি সত্যই অ্যাসিক্রোনাস অ্যাকশনটি সম্পন্ন করার অপেক্ষায় থাকেন তবে আপনার সেরা বাজিটি করা হয়। ADDClass যখন এটি সম্পূর্ণ হয় এবং সফল হয় তবে। ADDClass ('ত্রুটি') হতে পারে কোনও ধারণা
বিলম্ব () কাজটি করবে না। দেরি () সহ সমস্যাটি এটি অ্যানিমেশন সিস্টেমের অংশ এবং এটি কেবল অ্যানিমেশন কাতারে প্রয়োগ হয়।
আপনি যদি অ্যানিমেশনের বাইরে কিছু চালানোর আগে অপেক্ষা করতে চান তবে ??
এটা ব্যবহার কর:
window.setTimeout(function(){
// do whatever you want to do
}, 600);
কি ঘটে ?: এই দৃশ্যে এটি কোঁকড়া ধনুর্বন্ধনী মধ্যে নির্দিষ্ট কোড সম্পাদন করার আগে 600 মিলিসেকেন্ড অপেক্ষা করে।
আমি এটি একবার বের করে এনে এটি আমাকে বেশ সাহায্য করেছে এবং আশা করি এটি আপনাকেও সহায়তা করবে!
গুরুত্বপূর্ণ নোটিশ: 'উইন্ডো.সেটটাইমআউট' সংশ্লেষজনকভাবে ঘটে। আপনার কোড লেখার সময় এটি মনে রাখবেন!
বুঝতে পারেন যে এটি একটি পুরানো প্রশ্ন, তবে আমি এই সমস্যাটি সমাধানের জন্য একটি প্লাগইন লিখেছি যাতে কেউ হয়তো দরকারী বলে মনে করতে পারেন।
https://github.com/madbook/jquery.wait
আপনাকে এটি করতে দেয়:
$('#myElement').addClass('load').wait(2000).addClass('done');
একটি ফাংশন রয়েছে, তবে এটি অতিরিক্ত: http://docs.jquery.com/Cookbook/wait
এই ছোট স্নিপেট আপনাকে অপেক্ষা করতে দেয়:
$.fn.wait = function(time, type) {
time = time || 1000;
type = type || "fx";
return this.queue(type, function() {
var self = this;
setTimeout(function() {
$(self).dequeue();
}, time);
});
};
আপনি .delay()ফাংশন ব্যবহার করতে পারেন ।
আপনার পরে এটিই:
.addClass("load").delay(2000).addClass("done");
xML4jQuery প্লাগইন ঘুম (এমএস, কলব্যাক) পদ্ধতি দেয়। বাকি চেইন ঘুমের সময় পরে কার্যকর করা হবে।
$(".toFill").html("Click here")
.$on('click')
.html('Loading...')
.sleep(1000)
.html( 'done')
.toggleClass('clickable')
.prepend('Still clickable <hr/>');
.toFill{border: dashed 2px palegreen; border-radius: 1em; display: inline-block;padding: 1em;}
.clickable{ cursor: pointer; border-color: blue;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.xml4jquery.com/ajax/libs/xml4jquery/1.1.2/xml4jquery.js"></script>
<div class="toFill clickable"></div>