2010-11-15 72 views
2

我想在我的应用程序中使用jquery自动完成插件。Chrome不识别jquery插件

它运作良好,在IE和FF

Chrome的wierdly行为,而不是调用函数。

<script type="text/javascript" src="/GIM-WebUI/jquery/jquery-latest.js">jQuery.noConflict();</script> 
<link rel="stylesheet" href="/GIM-WebUI/jquery/autocomplete-main.css" type="text/css" /> 
<script type="text/javascript" src="/GIM-WebUI/jquery/autocomplete.js"></script> 

我在自动填充功能中保留了警告对话框。 FF和IE都会弹出警报消息,但不会显示Chrome。我在这里做错了什么?

当我在某个dom元素上调用.autocomplete时,它出错了。谢谢。

回答

6

我怀疑问题就在这里:

<script type="text/javascript" src="/GIM-WebUI/jquery/jquery-latest.js">jQuery.noConflict();</script> 
           -^-          -^- 

一个script标签可以要么src属性有代码的内容,而不是两个;从docs

如果存在src属性,该元件必须是空的,或者仅script documentation也匹配script content restrictions含有。

我怀疑你可能想:

<script type="text/javascript" src="/GIM-WebUI/jquery/jquery-latest.js"></script> 
<script type="text/javascript">jQuery.noConflict();</script> 

...但只有当你真正想要的jQuery不使用$符号(例如,你总是使用jQuery符号代替)。

偏题:Chrome内置了一套很好的工具来帮助您诊断问题。按Ctrl + Shift + I查看它们(或从右上角的扳手菜单中选择开发人员工具)。您可以在控制台中查找错误,设置断点,在调试器中遍历代码等等。

+0

在尝试第一个版本之前,我尝试了第二个版本。它不起作用。 – Chandra 2010-11-15 19:30:06

+0

事实证明,铬在加载之前会调用函数。 – Chandra 2010-11-15 19:44:34

+0

@ user487925:有了上面的两个'script'标签,恭敬地说,不是。当HTML解析器运行到脚本标记中时,它会在其脚本中停止,直到该脚本被加载并执行(禁止使用“defer”或“async”属性;请参阅上面的链接以获取详细信息)。这不是可选的,我向你保证Chrome与之兼容。 :-)只有从第一个'script'标签执行完脚本后,它才会继续使用任何HTML(在本例中为另一个脚本标签)。当然,如果您正在讨论组合版本,所有投注都将以无效标记打开。 – 2010-11-15 22:37:29