لقد واجهت مشكلة الأحداث الفقاعية من قبل ، لذلك بحثت في الإنترنت ، ومعظمها كان نفس الرمز ، ولم يكن استخدامه سلسًا للغاية. عندما يتعلق الأمر بـ FF ، يمكنك استخدام eStopPropagation () ؛ ، وبطريقة ما فشلت في النجاح. ومع ذلك ، وجدت أن FF يدعم طريقة الكتابة لـ e.cancelBubble = true ؛ ، وهو أمر ممكن بعد الاختبار. ما عليك سوى نشر الرمز هنا حتى تتمكن من تجنب البحث في كل مكان في المستقبل. لم يتم اختبار توافق إصدارات IE السابقة بعد ، لذلك سأقوم بتحسينه عند استخدامه.
نسخة الكود كما يلي:
// إلغاء فقاعة الحدث
وظيفة stopbubble (e) {
var evt = (e)؟ E: window.event ؛ // متوافق مع FF
evt.cancelbubble = true ؛ //evt.stoppropagation () ؛ لمنع الفقاعات تحت FF ، يقال أنها مفيدة
} ؛
آخر:
1. CancelBubble (خاصية كائن حدث HTML DOM): إذا أراد مقبض الحدث منع الحدث من الانتشار إلى الكائن الشامل ، فيجب تعيين الخاصية على TRUE.
2. توقف التوقف (طريقة كائن حدث HTML DOM): يتم نشر حدث الإنهاء أثناء التقاط أو معالجة الهدف أو مرحلة الفقاعة من عملية الانتشار. بعد استدعاء هذه الطريقة ، سيتم استدعاء المعالج على العقدة التي تتعامل مع الحدث ولن يتم إرسال الحدث إلى العقد الأخرى.
3. PreventDefault (طريقة كائن حدث HTML DOM) يخطر المتصفح بعدم تنفيذ الإجراءات الافتراضية المرتبطة بالأحداث.
مثال:
وظيفة stopbubble (هـ)
{
if (e && E.StopPropagation)
estoppropagation ()
آخر
window.event.cancelbubble = true
}
ضع وظيفة stopbubble (e) في الوظيفة التي تريد منع الحدث من الفقاعات.