Я уже некоторое время использую $("body").delegate(".selector", "click", function() { ... });
, и мне было интересно: если бы я делегировал событие click
содержащему элемент ближе к фактическому элементу, например, table
, полный кнопок, это будет быстрее, чем делегировать одно и то же событие в body
, учитывая, что событие не должно всплывать так далеко?
Базовый пример HTML:
<html>
<body>
<table>
<tr>
<td>
<input type="button" value="Delegated element">
</td>
</tr>
<!-- More, identical rows -->
</table>
</body>
</html>
Первый пример, используя body
:
$('body').delegate('input[type="button"]', 'click', function() {
// Do things
});
Второй пример, используя table
:
$('table').delegate('input[type="button"]', 'click', function() {
// Do things
});
Какой из двух приведенных выше примеров быстрее, и если один из них быстрее другого, почему ?