嗯,就是这样。
$('.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 键到达按钮并按 Enter 时,函数会被调用两次。猜猜这与链接有关,但我承认我是新手,并不完全理解 jQuery 设计模式。我当然可以在处理程序中调用该函数两次,keydown
这样可以解决问题,但是..你知道:)
您能否解释一下代码有什么问题以及导致这种行为的原因?