سؤال

وأواجه مشكلة. في الأساس، وعندما ينقر المستخدم على رابط 'تعديل' على الصفحة، رمز مسج التالية يعمل:

$("#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 "> على

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top