إضافة حدث نقرة إضافية إلى كل عنصر (JavaScript / jQuery)

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

  •  20-09-2019
  •  | 
  •  

سؤال

أقوم بتطوير تطبيق شاشة تعمل باللمس ، بصرف النظر عن كل شيء آخر ، يسجل مقدار الأوقات التي يتم فيها استخدام الشاشة بحيث يمكن تذكير المستخدم بتنظيف الشاشة بعد عدد محدد من النقرات.

لقد حصلت على وظائف النقر المكتوبة بشكل جيد ، كل ما أحتاجه الآن هو التأكد من استدعاء الوظيفة على نقرة.

أتخيل $('*').click(function() { //do something }); هل حقق هدفي ، لكن هل هذه هي أفضل طريقة؟ أيضا ، هل هذا الكتابة فوق وظائف النقرات الأخرى المعينة للعناصر؟

هل كانت مفيدة؟

المحلول

سيضيف ، وليس تجاوز ، ولكن الحل الأفضل هو:

$(document).click(function() { 
  //do something
});

نظرًا لأن Clicks Bubble ، ما عليك سوى الاستماع إلى مستوى المستند مع حدث واحد بدلاً من إنشاء أحداث على كل عنصر تحتها. بالنسبة للجزء التجاوز ... يمكنك إضافة أكبر عدد ممكن من المعالجات ، وسوف ينفذون فقط بالترتيب الذي كانوا ملزمين به.

نصائح أخرى

أفضل طريقة هي تعيين معالج الحدث إلى document بحد ذاتها. يمكن لفقاعة الأحداث والوثيقة أن تلتقطهم جميعًا ، مع الحفاظ على أصل الحدث.

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