Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
$('*[data-app="skip-advert"]');
$('*[data-app="go-to-modern"]');
$('*[data-app="help-me"]');
document.querySelectorAll() - оно?role с удобным плагином для коротких селекторов по ролям..js-*, и поверьте это не менее удобнее чем любой другой способ. А главное back-end разработчики не теряются, так как в HAML-разметке это будет выглядеть так же лаконично, как в селекторах, без лишних знаков.$('.app-skip-advert'), подразумевая, что выбрали при этом один-единственный элемент на странице, это мало чем отличается от использование id — в любом случае, при наличии двух элементов будут проблемы.$('#mainblock.app-skip-advert') защитит от появления такого же класса в соседнем блоке, а $('.app-skip-advert', block) позволит оперировать ссылкой внутри некоторого повторно используемого компонента страницы.При использовании нескольких шаблонов на одной странице, в случае если привязка идет не к глобальному объекту, а к корню шаблона, код будет работать хорошо.
AdminList = {
showFilter: function() {}
};<span onclick="AdminList.showFilter();">Фильтры</span>Переименовать функцию с современными-то IDE типа PhpStorm — гораздо легче, чем оперировать классами, на которые что-то навешено…
Если нужно привязать несколько событий к одному элементу — это изврат какой-то, но в любом случае сделайте обертку на этими несколькими действиями, из которой по очереди вызовите нужные…
<button class=".kill-all-humans-btn" data-tooltip="Dis button killz all humanz">Don't touch!</button><button onclick="UsefulFunctions.killAllHumans" onmouseover="Tooltips.show('Dis button killz all humanz')" onmouseout="Tooltips.hide">Don't touch!</button><a href="#" class="command-delete trash">Удалить в корзину</a>
<a href="#" class="command-delete permanent">Удалить навсегда</a>
<script>
$(function() {
$('.remove').bind('click', function() {
var action = $(this).prop('class').replace('command-delete ', '');
SomeBackend.RemoveBook(id, action);
});
});
</script>
data-*.left, b_font, red_font — это ужасные имена CSS-классов. Не надо так.
Почему стоит использовать специальные классы для привязки событий