который является правильным способом привязать событие к элементу

0

я читал, что события могут быть привязаны к элементу как

$('btn-submit').bind('click', function(){
  // your custom code
});

и по-другому,

$(document).on('click', 'btn-submit', function(){
  // your custom code
});

который является правильным и наиболее эффективным способом? Я использую рельсы 3.

  • 0
    возможно дублирование jquery использования bind против клика , нет смысла использовать bind, так как эта функция вызывает только более гибкую функцию on, даже не будучи короче :)
  • 0
    @Tats_innit: Правда, но он все равно будет вызывать .on по-другому, а не как делегирование события. Я бы сказал, что этот вопрос скорее о том, когда использовать делегирование событий, а когда использовать прямую привязку событий.
Показать ещё 3 комментария
Теги:
performance
event-binding

1 ответ

2
Лучший ответ

Первый используется для привязки события, которое присутствует в DOM во время привязки, и называется Direct Binding, тогда как второе - это делегирование событий, когда элементы не присутствуют во время события привязки, но добавляются позже.

Прямые и делегированные события

Обработчики событий привязаны только к выбранным в данный момент элементам; они должны существовать на странице в момент, когда ваш код выполняет вызов.on(). Чтобы убедиться, что элементы присутствуют и могут быть выбраны, выполните привязку событий внутри обработчика документа для элементов, которые находятся в разметке HTML на странице. Если на страницу вводится новый HTML-код, выберите элементы и присоедините обработчики событий после того, как новый HTML будет помещен на страницу. Или используйте делегированные события для присоединения обработчика событий, как описано ниже.

Преимуществом делегированных событий является то, что они могут обрабатывать события из элементов-потомков, которые будут добавлены в документ позже. Выбирая элемент, который, как гарантируется, присутствует в момент присоединения делегированного обработчика событий, вы можете использовать делегированные события, чтобы избежать необходимости часто присоединять и удалять обработчики событий.

Справка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню