2012-11-18 3 views
0
<div id="element1" onclick="func();">1</div> 
<div id="element2" onclick="func();">2</div> 
<div id="element3" onclick="func();">3</div> 
<div id="element4" onclick="func();">4</div> 
<div id="element5" onclick="func();">5</div> 
<div id="element6" onclick="func();">6</div> 
<div id="element7" onclick="func();">7</div> 
<div id="element8" onclick="func();">8</div> 

사용자가 div를 클릭하면 func() 함수가 작동하고 카운터가 func() 함수를 몇 번 처리하는지 계산합니다. 예를 들어, 사용자가 임의의 div를 다시 클릭 할 때보 다 2 회 (우리가 숫자를 결정 함) func() 함수가 작동하지 않습니다. jquery로 어떻게 할 수 있습니까?jquery에서 함수를 처리하는 횟수를 계산하는 방법은 무엇입니까?

답변

3

전역 변수를 사용하여 함수가 호출 된 횟수를 추적합니다.

약간 관련 메모에
var counter = 0; 

function func() { 

    counter++; 
    if (counter > 2) return; 

    // do other fn stuff 
} 

는, jQuery를 사용하여 여러 클릭 핸들러 바인딩의 더 나은 방법이 : 물론

$('div[id^="element"]').click(func); 

, 정말 실행을 중지합니다 return 때문에 문제가되지 않지만 당신은 전혀 호출 할 func를하지 않은 경우 (즉, 당신은 모두 클릭 이벤트를 제거하기를 원한다면) (위의 변경을하는 경우), 당신은 단순히 할 수있는 :

$('div[id^="element"]').unbind('click'); 

이것은 코드의 첫 번째 절에있는 return 문 대신 사용됩니다.

+0

고맙습니다. 나에게 매우 유용합니다. 문제를 해결해 주셔서 감사합니다. – regxcode

관련 문제