以下代码是我正在创建的数学难题的简化版本。问题是——一旦“inc”变量被重置为“0”(第 25 行),输入的值$('#userInput').val(); 不再显示在#testMessage div 中。
<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>
请解释发生了什么。