Ну, вот что происходит.jQuery стрельбы по событию без щелчка
$('.js-custom-dropdown').find('.custom-dropdown-unfolded').toggle();
$('.custom-dropdown-btn, .custom-dropdown-btn-unfolded').keydown(function(event){
if (event.keyCode === 13) {
openDropdown($(this));
}
}).click(function(){
openDropdown($(this));
});
function openDropdown (element){
element.parents('.js-custom-dropdown').find('.custom-dropdown-unfolded').toggle();
console.log($(this))
}
При нажатии на кнопку с, openDropdown
функция выполняется один раз, но когда я Tab мой путь к кнопке и нажмите клавишу ввода, функция вызывается дважды. Угадайте, что имеет какое-то отношение к цепочке, но я признаю, что я новичок в этом и не совсем понимаю шаблоны дизайна jQuery. Я мог бы использовать функцию дважды в обработчике keydown
, и это решило бы проблему, но .. вы знаете :)
Не могли бы вы объяснить, что не так с кодом и что вызывает такое поведение?
это не потому, что вы есть 2 прослушивателя событий - один для keydown (который будет срабатывать при нажатии клавиши ввода), а другой - при нажатии кнопки (что, я думаю, это то, что вы делаете, когда нажимаете клавишу ввода) – Pete