Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我不明白javascript/jquery代码是如何执行的_Javascript_Jquery_Jquery Autocomplete - Fatal编程技术网

我不明白javascript/jquery代码是如何执行的

我不明白javascript/jquery代码是如何执行的,javascript,jquery,jquery-autocomplete,Javascript,Jquery,Jquery Autocomplete,如果我删除第一行警报,以下代码将不起作用,很明显我不需要它。我将事件绑定到的表单是使用jquery动态生成的。请问有什么问题?谢谢 alert(""); $("#search").autocomplete('func.php'); $("#c_name").autocomplete('func.php'); $("#search").keypress(function(event) { if (event.which === 13) { findItem('search

如果我删除第一行警报,以下代码将不起作用,很明显我不需要它。我将事件绑定到的表单是使用jquery动态生成的。请问有什么问题?谢谢

alert("");
$("#search").autocomplete('func.php');
$("#c_name").autocomplete('func.php');

$("#search").keypress(function(event) {
    if (event.which === 13) {
        findItem('search');
        return false;
    }
});

可能是警报提供了jQuery识别所需元素所需的延迟

删除警报并在代码周围添加以下内容:

$(document).ready(function(){ ... your code here ... })

您需要将其包装在$document中。准备好了吗

$(document).ready(function(){
  $("#search").autocomplete('func.php');
  $("#c_name").autocomplete('func.php');

  $("#search").keypress(function(event) {
      if (event.which === 13) {
          findItem('search');
          return false;
      }
  });
});
如果在动态创建搜索表单之前调用$search,jQuery查询将返回0个对象,并且无法将事件绑定到任何对象

调用alert会创建一个暂停,允许在进行$search查询之前创建表单。您可以通过在有或没有第一个警报的情况下对$search的结果发出警报来确认这一点


在尝试将任何事件绑定到搜索表单之前,必须确保已创建搜索表单。如果这不是琐碎的事情要做,你可以考虑使用jQuery 1.5 +。延迟对象可用于确保在将事件绑定到搜索表单之前创建搜索表单。

警报为表单加载提供了必要的延迟,之后将事件绑定到元素才有意义。如果没有alert语句,代码将在表单元素实际加载之前执行。尝试使用jquery的live函数将事件绑定到动态加载的元素。下面是如何使用它:

什么东西不起作用?您会遇到什么错误?这将确保在页面完成加载并且DOM中存在所有必需的元素之前,代码不会执行。您还可以使用较短的$function{…execute stuff};