إضافة حدث نقرة إضافية إلى كل عنصر (JavaScript / jQuery)
-
20-09-2019 - |
سؤال
أقوم بتطوير تطبيق شاشة تعمل باللمس ، بصرف النظر عن كل شيء آخر ، يسجل مقدار الأوقات التي يتم فيها استخدام الشاشة بحيث يمكن تذكير المستخدم بتنظيف الشاشة بعد عدد محدد من النقرات.
لقد حصلت على وظائف النقر المكتوبة بشكل جيد ، كل ما أحتاجه الآن هو التأكد من استدعاء الوظيفة على نقرة.
أتخيل $('*').click(function() { //do something });
هل حقق هدفي ، لكن هل هذه هي أفضل طريقة؟ أيضا ، هل هذا الكتابة فوق وظائف النقرات الأخرى المعينة للعناصر؟
المحلول
سيضيف ، وليس تجاوز ، ولكن الحل الأفضل هو:
$(document).click(function() {
//do something
});
نظرًا لأن Clicks Bubble ، ما عليك سوى الاستماع إلى مستوى المستند مع حدث واحد بدلاً من إنشاء أحداث على كل عنصر تحتها. بالنسبة للجزء التجاوز ... يمكنك إضافة أكبر عدد ممكن من المعالجات ، وسوف ينفذون فقط بالترتيب الذي كانوا ملزمين به.
نصائح أخرى
أفضل طريقة هي تعيين معالج الحدث إلى document
بحد ذاتها. يمكن لفقاعة الأحداث والوثيقة أن تلتقطهم جميعًا ، مع الحفاظ على أصل الحدث.