জাভাস্ক্রিপ্টে বেনামে ফাংশন আনবাইন্ড করা
ধরুন এখন আমাদের অনুচ্ছেদগুলির সাথে একটি বেনামে ফাংশন সংযুক্ত আছে:
javascriptlet elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function() {
console.log(this.textContent);
});
}
ধরুন আমরা এই অনুচ্ছেদে ক্লিক করার পর এই ফাংশনটি অনুচ্ছেদ থেকে আনবাইন্ড করতে চাই। তবে, আমাদের একটি সমস্যার সম্মুখীন হতে হবে: ফাংশনের কোন নাম নেই, যার অর্থ এটি আনবাইন্ড করার জন্য আমরা নাম দ্বারা এটিকে অ্যাক্সেস করতে সক্ষম হব না।
সমস্যার সমাধানের জন্য ফাংশনটিকে একটি নাম দিতে হবে, এটিকে একটি নামযুক্ত ফাংশনাল এক্সপ্রেশন এ রূপান্তরিত করে। আসুন এটি করি:
javascriptlet elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() { // ফাংশনটিকে নাম দিলেন
console.log(this.textContent);
});
}
এখন এই ফাংশনটি তার নিজের ভিতর থেকেই আনবাইন্ড করা যেতে পারে:
javascriptlet elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() {
console.log(this.textContent);
this.removeEventListener('click', func); // ফাংশন আনবাইন্ড করছি
});
}
একটি ul তালিকা দেওয়া আছে, যার প্রতিটি আইটেমে
একটি সংখ্যা লেখা আছে। এমন করুন যাতে
যেকোনো li এ ক্লিক করলে
এর সংখ্যা এক করে বৃদ্ধি পায়।
পূর্ববর্তী সমস্যাটি এমনভাবে পরিবর্তন করুন,
যাতে প্রতিটি li শুধুমাত্র তার উপর প্রথম ক্লিকেই তার
মান বৃদ্ধি করে।
পূর্ববর্তী সমস্যাটি এমনভাবে পরিবর্তন করুন,
যাতে প্রতিটি li শুধুমাত্র তখনই তার মান বৃদ্ধি করে
যখন এর মান
10 এর কম হয়।