নিশ্চিত যে আপনার স্ক্রিপ্ট (গুলি) এর অন্য কোথাও "ক্লিক" ইভেন্টটি আবার একই উপাদানটির সাথে আবদ্ধ হচ্ছে, যেমন আরও বেশ কয়েকটি উত্তর / মন্তব্য প্রস্তাব করছে।
আমার অনুরূপ সমস্যা ছিল এবং এটি যাচাই করার জন্য, আমি কেবল console.logআমার স্ক্রিপ্টে একটি কমান্ড যুক্ত করেছি, যেমন নীচের স্নিপেটের মতো:
$("#link_button")
.button()
.click(function () {
console.log("DEBUG: sliding toggle...");
$("#attachmentForm").slideToggle("fast");
});
যদি, বোতামটি ক্লিক করার পরে, আপনি আপনার ব্রাউজারের বিকাশকারী কনসোল থেকে নীচের চিত্রের অনুরূপ কিছু পেয়েছি (যেমনটি করেছি), তবে আপনি নিশ্চিতভাবে জানেন যে click()ইভেন্টটি একই বোতামে দু'বার আবদ্ধ হয়েছে।

আপনার যদি দ্রুত প্যাচ দরকার হয়, তবে ইভেন্টটি আবদ্ধ করার আগে (পুনরায়) ভালভাবে কাজ করার পূর্বে offপদ্ধতিটি নিষিদ্ধ করার unbindজন্য পদ্ধতিটি (বিটিডব্লিউটি jQuery 3.0 থেকে অবচিত করা হয়েছে) ব্যবহারের অন্যান্য ভাষ্যকারদের দ্বারা প্রস্তাবিত সমাধানটি প্রস্তাবিত হয়েছে:
$("#link_button")
.button()
.off("click")
.click(function () {
$("#attachmentForm").slideToggle("fast");
});
দুর্ভাগ্যক্রমে, এটি কেবল একটি অস্থায়ী প্যাচ! একবার আপনাকে বসকে খুশি করার সমস্যাটি সমাধান হয়ে গেলে আপনার কোডটি সত্যই আরও কিছুটা খনন করা উচিত এবং "নকল বাঁধাই" সমস্যাটি ঠিক করা উচিত।
আসল সমাধান অবশ্যই আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে নির্ভর করে। আমার ক্ষেত্রে, উদাহরণস্বরূপ, "প্রসঙ্গ" এর সমস্যা ছিল। আমার ফাংশনটি ডকুমেন্টের নির্দিষ্ট অংশে প্রয়োগ করা একটি অজ্যাক্স কলটির ফলস্বরূপ আহ্বান করা হয়েছিল: পুরো ডকুমেন্টটি পুনরায় লোড করা আসলে "পৃষ্ঠা" এবং "উপাদান" উভয় প্রসঙ্গেই পুনরায় লোড করা হয়েছিল, ফলস্বরূপ ইভেন্টটি দুবার উপাদানটির সাথে আবদ্ধ ছিল ।
এই সমস্যার আমার সমাধান jQuery এর সুবিধা গ্রহণার্থে ছিল এক ফাংশন, যা হিসাবে একই উপর ব্যতিক্রম যে ঘটনা তার প্রথম আবাহন পর স্বয়ংক্রিয়ভাবে আনবাউন্ড সঙ্গে। এটি আমার ব্যবহারের ক্ষেত্রে আদর্শ ছিল তবে আবার এটি অন্য ব্যবহারের ক্ষেত্রে সমাধান নাও হতে পারে।