나의질문답

버튼을 누르면 자바스크립트가 두번 실행됩니다.

예쁜꽃이피었으면 2015. 11. 2. 10:14

http://okky.kr/article/293915


안녕하세요. 

모바일에서 토글메뉴를 누르면 메뉴가 펼쳐졌다가 바로 접힙니다..

아무래도 중복실행되는 것 같긴한데 해결을 못해서 질문드립니다.


<button type="button" data-act="toggle_snb"><i class="sp-ico"></i></button> 메뉴버튼입니다.


모달액션 부분입니다.

// mobile - toggle event

$sideLeft.find('[data-act=toggle_snb]').on('click', function(){

alert("global.js ->  toggle_snb / click "); // [ 1 , 2 ] 

$sideLeft.find('.con').slideToggle(200, function(){

alert(" global.js ->  .con /slideToggle "); // [ 3 , 5 ]

if ($(this).css('display') == 'none') $(this).css('display', '');

alert("global.js ->  if문끝"); //[ 4, 6]

});

});


메뉴를 눌렀을 때 대괄호[] 안에 숫자순서대로 alert창이 뜹니다.

메뉴를 누르면 바로 접히는 이유가 두 번 실행되서 인 것 같긴합니다..


<button type="button" 인 경우에 click 이벤트가 두번 발생하는 경우가 있나요?

해결방법은 어떤 것이 있는지 답변 부탁드립니다.

(<button 대신에 <input> 으로도 해봤고 ,type="button" 을 삭제해도 메뉴가 펼쳐졌다가 바로 접힙니다.)




click event가 두번 등록된 것은 아닐까요?



$sideLeft.find('[data-act=toggle_snb]').off('click').on('click', function(){

이렇게 한번 바꿔보시면 어떻게 되나요?

반응형