如何在jQuery .on函数中定义局部变量

rwx*_*rwx 0 javascript jquery

我有一个输入HTML元素,并希望在有输入时执行一个函数,如果此输入没有改变3秒.

码:

$("#search_input").on('input', function() {
  input_value = $("#search_input").val();
  if (input_value != "") {
    setTimeout(function() {
      if (input_value == $("#search_input").val()) {
        alert("still the same :) -> go search");
      }
    }, 3000);
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="form-control" id="search_input" placeholder="Search...">
Run Code Online (Sandbox Code Playgroud)

问题是处理程序刷新了input_value所以它始终是相同的.如何将其设置input_value为局部变量,因此它不会刷新?

Luc*_*sta 5

你忘记了var声明:

var input_value = $("#search_input").val();
Run Code Online (Sandbox Code Playgroud)