на что навешать обработчик события
насколько я знаю обычто навешивают на id или cssClass
но вот к примеру сейчас верстальщик хочет удалить некоторые cssClassы из атрибута class но так как в js эти cssClassы используются удалить их как-то затруднительно на будущее собираюсь навешать обработчик события на атрибут "data-js-selector", чем это плохо, какие есть подводные камни? поделитесь опытом/мнением как делаете/сделали бы вы |
leko,
Походу Вы говорите о jQuery, посколь навешивать на класс в нативном JS - затруднительно |
leko - Вам нужно разобраться что такое выборка елементов, а что такое навешивание событий.
Событие не навешивается на аттрибуты элемента, событие навешивается на сам элемент. В данном случае по аттрибутам Вы находите элемент на странице и после на сам элемент уже навешиваете событие. В данном случае никаких проблем не будет, кроме того что JQuery будет немного медлене находить элемент на странице. |
Цитата:
var element = document.querySelector(,,,,,); // БАБАХ!! 20мс сожрали // тут код // а тут ещё поиск var elements = document.querySelectorAll(........); // ВСПЫШКА !!! отожрали 50мс, ибо querySelector прекращает поиск после первого найденного, а эта штука идет дальше. Цитата:
|
Цитата:
При много тегах - может чаша и склонится в Вашу сторону |
Цитата:
|
Цитата:
хм ... напомните, почему нельзя вешать обработчики через атрибуты? из-за того, что низя получить объект события? да вроде можно : <script> function rand () { return 255 * Math.random() | 0; } function delegater (e) { e = e || event; e = e.target || e.srcElement; e.style.backgroundColor = "rgb("+ rand() +", " + rand() + ", " + rand() + ")"; } </script> <body onclick="delegater(event)"> <div>DIV</div> <p>P</p> <a href="#">A</a> </body> Потому что устарело? смешно же. |
Цитата:
Цитата:
Имеется в виду лучше для производительности или удобства разработки (или может быть и то и другое)? |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 16:47. |