ええと、そういうことが起こります。
$('.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
関数が1回実行されますが、ボタンに移動してEnterキーを押すと、関数が2回呼び出されます。これはチェーンと関係があると思いますが、私はこれに不慣れで、jQueryのデザインパターンを完全には理解していません。ハンドラーで関数を2回呼び出すこともできますが、それでkeydown
問題は解決しますが、..ご存知のとおりです:)
コードの何が問題で、何がそのような動作を引き起こすのか説明していただけますか?