Я столкнулся с вопросом, решение которого я не знал.
Предположим, у меня есть HTML-разметка (динамически генерируемая сервером или просто статический файл):
<ul class="myList">
<li><a href="page1.html">Page 1</a></li>
<li><a href="page2.html">Page 2</a></li>
<li><a href="page3.html">Page 3</a></li>
<li><a href="page4.html">Page 4</a></li>
<li><a href="page5.html">Page 5</a></li>
<li><a href="page6.html">Page 6</a></li>
<!-- ... -->
<li><a href="page1000.html">Page 1000</a></li>
</ul>
Я хочу привязать обработчик события щелчка к тегу . Обычно я бы выписал
$('.myList').find('a').click(function() {}); /* Or something similar */
, который будет выполнять неявную итерацию для всех тегов привязки, чтобы привязать событие щелчка к каждому из них. Однако мне сказали, что это дорогостоящая операция.
Меня спросили, есть ли какой-нибудь способ присоединить только один прослушиватель событий (к тегу ul) и использовать всплывающее окно событий, чтобы выяснить, какой тег привязки был нажат. Я никогда не сталкивался с чем-то подобным, поэтому я не знал ответа. Видимо, есть ответ. Кто-нибудь знает, как разместить один элемент прослушивания событий на элементе и выяснить, какой дочерний элемент был нажат? (Мне все еще нужно использовать event.preventDefault () для предотвращения события щелчка по умолчанию.)