Beh, questo è un po 'quello che succede.jQuery evento di attivazione scatto senza un clic
$('.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))
}
quando clicco sul pulsante a discesa, openDropdown
funzione viene eseguita una volta, ma quando ho il mio modo Tab al pulsante e premere invio, la funzione viene chiamata due volte. Suppongo che abbia qualcosa a che fare con il concatenamento, ma ammetto di essere nuovo in questo e di non comprendere appieno i modelli di design di jQuery. Potrei chiamare la funzione due volte nel gestore keydown
e questo risolverebbe il problema, ma .. lo sai :)
Potresti spiegare cosa c'è di sbagliato nel codice e cosa causa questo comportamento?
non è vero perché si avere 2 ascoltatori di eventi - uno per il keydown (che si accenderà quando si preme invio) e l'altro per quando si fa clic sul pulsante (che immagino sia quello che si sta facendo quando si preme invio) – Pete