Cóż, to coś, co się dzieje.jQuery wypalanie kliknij wydarzenie bez kliknięcia
$('.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))
}
Kiedy klikam przycisk rozwijanej openDropdown
funkcja jest wykonywana raz, ale kiedy mój sposób Tab do przycisku i naciśnij klawisz Enter, funkcja jest wywoływana dwukrotnie. Zgadnij, że ma to coś wspólnego z łańcuchem, ale przyznaję, że jestem na tym początku i nie w pełni rozumiem wzorce projektowe jQuery. Mógłbym z cource zadzwonić do funkcji dwa razy w obsłudze keydown
i to rozwiązałoby problem, ale .. wiesz :)
Czy mógłbyś wyjaśnić, co jest nie tak z kodem i co powoduje takie zachowanie?
jest to nie dlatego, że mają 2 detektory zdarzeń - jeden dla keydown (który zostanie uruchomiony po naciśnięciu klawisza Enter), a drugi po kliknięciu przycisku (co domyślam się robi po naciśnięciu klawisza Enter) – Pete