-1

以下代码是我正在创建的数学难题的简化版本。问题是——一旦“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>

请解释发生了什么。

4

1 回答 1

0

当用户点击返回键时,您会一遍又一遍地绑定 keydown 事件。

于 2013-05-24T14:11:52.787 回答