مسج: كيف يمكنني استخدام حدث .preventdefault () مع أحداث مخصصة؟

StackOverflow https://stackoverflow.com/questions/2229647

  •  19-09-2019
  •  | 
  •  

سؤال

كيف يمكنني أن أعرف في رمز الاستيقاظ الخاص بي preventDefault وقد دعا؟

$(document).trigger('customEvent', params);
if (/* ??? */)
    doDefaultActions();
هل كانت مفيدة؟

المحلول

يمكن أن تأخذ Trigger () أيضا كائن حدث، لذلك إذا كنت تستطيع إنشاء كائن حدث، مثل ذلك:

var event = jQuery.Event("customEvent");
$(document).trigger(event);

ثم يمكنك التحقق من العدوى لمعرفة ما إذا كان الوقاية منه () قد تم استدعاؤه مثل ذلك:

var prevented = event.isDefaultPrevented();

نصائح أخرى

إذا كنت تسأل كيفية معرفة ما إذا كان سيتم منع الإعداد الافتراضي أم لا، استخدم:

event.isDefaultPrevented()

سيعود هذا "صحيح" أو "FALSE" بناء على ما إذا كان قد تم استدعاء الوقاية منها ().

تعديل:http://api.jquery.com/event.isdefaultpreventy/

لا تملك الأحداث المخصصة بعض الإجراءات الافتراضية التي تحدث .. (فهي مخصصة).

من ناحية أخرى، إذا كنت ترغب في إيقاف التأثير الفقاعي لهذا الحدث للآخرين، فبعد إلقاء نظرة على triggerHandler الذي لا ينفق حتى التسلسل الهرمي ..

على حد علمي، فإن مكالمة "pengendDefault ()" تدور حول منع استجابات المتصفح الأصلية على أشياء مثل النقرات على علامات مرساة أو القنبير في الحقول النصية. بمجرد انتهاء دورة معالجة الأحداث، انتهى الأمر. بالنسبة للأحداث المتراكمة، لا أعتقد أن لديها أي تأثير على الإطلاق نظرا لأنه كل شيء عن نظام معالجة الأحداث المسجين وليس حول وظيفة المتصفح الأصلية.

يمكن أن تحدد الكود الخاص بك نوعا من العلم في مكان ما من أجل التواصل مع "العالم الخارجي".

edit] ooh يمكنك تجربة وجود معالج تخبئ مرجعا إلى كائن الحدث في مكان ما يمكن أن يجد فيه الرمز الإبتداد ذلك، ثم تحقق من الخارج مع "isdefaultprurevening ()". أنا لا أعرف ما إذا كان هذا العمل كذلك.

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