[英]$(document).ready(function() {…}) runs before plugin script loads
我收到JS错误,因为在加载必备插件脚本之前,似乎触发了我的$(function () {...})
处理函数。 仅在IE中发生(在IE7中进行测试)。
我的<head>
中有一些HTML,如下所示:
<script type="text/javascript" src="../resources/org.wicketstuff.jwicket.JQuery/jquery-1.4.2-special.js"></script>
...
<script type="text/javascript" id="noConflict"><!--/*--><![CDATA[/*><!--*/
jQuery.noConflict();
/*-->]]>*/</script>
...
<script type="text/javascript" src="../resources/com.csc.aims.wicket.components.collapsiblefieldset.CollapsibleFieldsetBehavior/jquery.collapsiblefieldset.js"></script>
<link rel="stylesheet" type="text/css" href="../resources/com.csc.aims.wicket.components.collapsiblefieldset.CollapsibleFieldsetBehavior/jquery.collapsiblefieldset.css" />
<script type="text/javascript">
jQuery(function(){
jQuery('#collapse119').collapse({"iconClosedUrl":"../resources/img/white_plus","iconOpenUrl":"../resources/img/white_minus"});
});
</script>
因此请注意,根据HTML代码的顺序如下:
当此代码在FF中运行时,一切正常。 当我在IE7(或带Compat。View的IE8:IE7标准模式)下进行测试时,出现JavaScript错误。 调试器向我显示jQuery.fn.collapse是未定义的。
使用IE8开发人员工具,我尝试查看jquery.collapsiblefieldset.js。 我在列表中看到了脚本,但是该工具告诉我,因为未加载脚本,所以无法设置断点。
为什么在我的$()ready处理程序运行之前,collapsiblefieldset.js没有加载? 任何见识将不胜感激! 谢谢。
您正在使用
$(function(){...});
这是的同义词
$(document).ready( function(){...} );
相反,您可以尝试
$(window).load( function(){...} );
在页面加载顺序的稍后触发。
将所有脚本放在页面底部</body>
标记之前。
如果仍不能解决问题,请将未及时加载的脚本移回<head>
,并将其余脚本保留在底部。
对于其他遭受此问题困扰的人,值得仔细检查一下您没有对jQuery的多个引用。 如果您在头中定义了插件,则它们将被正文中的第二个jQuery调用覆盖。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.