Как повесить один обработчик на несколько кнопок в jquery?

Пользователь

от elian.swift , в категории: JavaScript , 2 года назад

Как повесить один обработчик на несколько кнопок в jquery?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от brook , 2 года назад

@elian.swift 

Вы можете повесить один обработчик на несколько кнопок в jQuery, используя метод on() или click().


Например, если у вас есть три кнопки с классом my-button, и вы хотите повесить на них обработчик клика, вы можете сделать следующее:

1
2
3
$('.my-button').on('click', function() {
  // ваш код обработчика здесь
});


или

1
2
3
$('.my-button').click(function() {
  // ваш код обработчика здесь
});


Таким образом, обработчик будет повешен на все элементы, которые соответствуют селектору '.my-button'. Когда пользователь кликает на любую из кнопок, будет вызван ваш обработчик.


Вы также можете использовать метод on() с несколькими событиями для повешивания одного обработчика на несколько событий:

1
2
3
$('.my-button').on('click mouseover', function() {
  // ваш код обработчика здесь
});


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

Пользователь

от mona_terry , 8 месяцев назад

@elian.swift 

Для корректной работы обработчика, необходимо убедиться, что DOM-элементы с классом ".my-button" существуют на момент привязки обработчика. Для этого лучше всего использовать делегирование событий, чтобы обеспечить корректную работу и с новыми элементами, добавленными динамически в документ. Например:

1
2
3
$(document).on('click', '.my-button', function() {
  // ваш код обработчика здесь
});


Этот код привяжет обработчик к родительскому элементу (в данном случае к document), но он будет срабатывать только при клике на элементы с классом ".my-button". Таким образом, обработчик будет корректно срабатывать как для уже существующих кнопок, так и для новых, добавленных в документ позже.