كيفية إزالة كافة معالجات الحدث Click في مسج
-
05-07-2019 - |
سؤال
وأواجه مشكلة. في الأساس، وعندما ينقر المستخدم على رابط 'تعديل' على الصفحة، رمز مسج التالية يعمل:
$("#saveBtn").click(function () {
saveQuestion(id);
});
وعند القيام بذلك، الحدث onClick من الزر حفظ باستدعاء أسلوب saveQuestion()
ويمر على ID للقضية التي تم النقر على رابط "تعديل".
ولكن إذا كان في نفس الدورة المستخدم بالنقر فوق تحرير في 2 الأسئلة، ثم بدلا من الكتابة معالج الأحداث click
السابق، بدلا من ذلك يسبب 2 معالجات الأحداث لتشغيل، واحد التي قد تدعو saveQuestion(1)
والآخر يمكن أن نسميه saveQuestion(2)
. من خلال ذلك السؤال 1 الكتابة فوق الآخر.
هل هناك طريقة لإزالة كافة الأحداث click
السابقة التي تم تعيينها إلى زر؟
المحلول
وأنت سوف تستخدم قبالة () لإزالة حدث مثل ذلك:
$("#saveBtn").off("click");
ولكن هذا سيزيل <م> جميع الأحداث فوق م> بد أن هذا العنصر. إذا كانت وظيفة مع SaveQuestion هي الحدث الوحيد ملزمة ثم ما سبق سوف نفعل ذلك. إذا لم تفعل ما يلي:
$("#saveBtn").off("click").click(function() { saveQuestion(id); });
نصائح أخرى
هل هناك طريقة لإزالة كافة الأحداث انقر السابقة التي تم تعيينها إلى زر؟
اقتباس فقرة>$('#saveBtn').unbind('click').click(function(){saveQuestion(id)});
$('#saveBtn').off('click').click(function(){saveQuestion(id)});
إذا كنت تستخدم ...
$(function(){
function myFunc() {
// ... do something ...
};
$('#saveBtn').click(myFunc);
});
... بعد ذلك سوف يكون من الأسهل على توثيق لاحقا.
$('#saveBtn').off('click').on('click',function(){
saveQuestion(id)
});
استخدم مسج ل إيقافها و <لأ href = "http://api.jquery.com / على / "يختلط =" نوفولو noreferrer "> على