그런 일이 생깁니다. 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 디자인 패턴을 완전히 이해하지 못한다는 것을 인정합니다. 나는
keydown
핸들러에서 함수를 두 번 호출하여 문제를 해결할 수 있지만, 알 수 있습니다. :)
코드의 문제점과 그 원인을 설명해 주시겠습니까?
당신 때문에되지 않습니다 : 여기에
을 개념 증명 바이올린의 2 개의 이벤트 리스너가 있습니다. 하나는 keydown (Enter 키를 누를 때 발생합니다)이고 다른 하나는 버튼을 클릭했을 때입니다 (Enter 키를 누를 때 수행중인 작업입니다) – Pete