繁体   English   中英

我不明白这个javascript / jquery代码如何执行

[英]I don't understand how this javascript/jquery codes executes

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

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

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

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

删除alert()并在代码周围添加以下内容:

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

警报为加载表单提供了必要的延迟,之后将事件绑定到元素就很有意义。 没有alert语句,代码将在表单元素可以实际加载之前被执行。 尝试使用jquery的live()函数将事件绑定到正在动态加载的元素。 使用方法如下: http : //api.jquery.com/live/

如果在动态创建搜索表单之前调用$("#search") ,则jQuery查询将返回0个对象,并且无法将事件绑定到任何对象。

alert()的调用会创建一个暂停,该暂停允许在进行$("#search")查询之前创建表单。 您可以通过确认这个alert荷兰国际集团的结果$("#search")有和没有第一alert()

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

您需要将其包装在$(document).reada中:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM