嗯,這就是發生了什麼。沒有點擊的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
功能被執行一次,但是當我標籤我的方式按鈕,然後按回車,函數被調用兩次。猜猜這與鏈接有關,但我承認我是新手,並沒有完全理解jQuery設計模式。我可以通過cource在處理程序中調用該函數兩次,這將解決問題,但是..您知道:)
請問您能解釋代碼中出現了什麼問題以及導致此類行爲的原因?
是不是因爲你有2個事件監聽器 - 一個用於keydown(當你按下回車鍵時會觸發),另一個用於單擊按鈕時(當我按下回車鍵時,我猜你正在做什麼) – Pete 2013-03-27 09:20:07