Да - вы можете слушать любое событие на любом элементе в DOM. Отъезд this fiddle в качестве отправной точки. Вот full list of mouse events и keyboard events вы можете слушать.
HTML
<select class="my-select-1">
<option value="1">First</options>
<option value="2">Second</options>
</select>
<select class="my-select-2">
<option value="1">A choice</options>
<option value="2">Another choice</options>
</select>
JQuery
$(document).ready(function() {
$(".my-select-1").on("click", function(event){
alert('Do something - click event');
});
$('.my-select-2').on('keypress', function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
alert('Do something - enter key press');
}
});
});
В приведенном выше примере, $(".my-select-1)
это селектор, это может быть что угодно (идентификатор, тип элемента, и т.д.). Дополнительная информация о селекторах here. Следующая часть, .on("mousedown"
присоединяет функцию обработчика событий для одного или нескольких событий к выбранным элементам - в этом случае только одно событие, mousedown
. Больше информации о here.
Второй пример - немного более причудливый, поскольку мы должны определить, какой ключ был нажат, но кроме этого использует ту же концепцию. Вы можете найти очень продолжительное обсуждение об этом на this post, но обратите внимание на 1.7 on
является предпочтительным методом (не bind
).
Клянусь, я подумал, что щелчок произошел при первом щелчке выбора ... Ну, это в значительной степени решило мой вопрос, я буду использовать это, возможно, с ответом @ undefined, присоединив два оператора 'on' к одному – Ascherer
Да, я просто собирался сказать, если вы приведете пример своего кода, это поможет нам дать вам лучшее предложение. В зависимости от того, как вы подходите к нему, будет работать также и метод @undefined - путем размещения переключателя или операторов внутри функции, которые он предлагает, чтобы иметь разные типы поведения для разных событий. – MaxPowers
Да, это идея. Спасибо – Ascherer