2013-05-24 4 views
-1

다음 코드는 내가 만드는 maths 퍼즐의 단순화 된 버전입니다. 문제는 이것입니다 - 'inc'변수가 '0'(25 행)으로 재설정되면 입력 값 $ ('# userInput') .val();은 #testMessage div에 더 이상 표시되지 않습니다. 나는 카운트 변수와 스크립트에 경고를 추가 할 경우keydown 이벤트의 다중 트리거

<body> 

<input type="text" id="userInput"> 

<div id="testMessage"> </div> 

<script src="jquery-1.9.1.min.js"></script> 
<script> 
var inc=0; 

init(); 

function init(){ 
    $('#userInput').focus(); 

    $('#userInput').bind('keydown',function(event){ 
    var keyCode = event.which; 
    if(keyCode == 13){ // RETURN KEY ... 
     var user_ans = $('#userInput').val(); 

     $('#testMessage').html(user_ans); 
     $('#userInput').val(''); 
     $('#userInput').focus(); 

     if(inc > 2){ inc=0; } 
     init(); 
    } 
    }); 

    inc++; 
} 

</script> 

</body> 

, 나는를 keyDown 이벤트가 여러 번 트리거 것을 알 :

<body> 

<input type="text" id="userInput"> 

<div id="testMessage"> </div> 

<script src="jquery-1.9.1.min.js"></script> 
<script> 
var inc=0; 
var count=0; // NEW VARIABLE 

init(); 

function init(){ 
    $('#userInput').focus(); 

    $('#userInput').bind('keydown',function(event){ 
    var keyCode = event.which; 
    if(keyCode == 13){ // RETURN KEY ... 
     var user_ans = $('#userInput').val(); 

     $('#testMessage').html(user_ans); 
     $('#userInput').val(''); 
     $('#userInput').focus(); 

     alert(count++); // NEW ALERT 

     if(inc > 2){ inc=0; } 
     init(); 
    } 
    }); 

    inc++; 
} 

</script> 

</body> 

는 무슨 일이 일어나고 있는지 설명해주십시오.

답변

0

사용자가 리턴 키를 눌렀을 때 keydown 이벤트를 반복해서 바인딩합니다.

+0

keydown 이벤트 바인딩을 반복해서 중지하려면 어떻게해야합니까? – user2417713

+0

init 함수를 다시 호출하지 마십시오. –

관련 문제