на что навешать обработчик события
насколько я знаю обычто навешивают на 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, время: 07:37. |