我收到 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 代码,顺序如下:
- jquery-1.4.2-special.js
- jQuery.noConflict() 调用
- jquery.collapsiblefieldset.js//定义$.fn.collapse
- 调用 jQuery('#collapse119').collapse(...)
当此代码在 FF 中运行时,一切正常。当我在 IE7(或 IE8 w/Compat.View: IE7 标准模式)中测试它时,出现 javascript 错误。调试器向我显示 jQuery.fn.collapse 未定义。
使用 IE8 开发人员工具,我尝试查看 jquery.collapsiblefieldset.js。我在列表中看到该脚本,但该工具告诉我无法设置断点,因为该脚本未加载。
为什么在我的 $() 就绪处理程序运行之前没有加载 collapsiblefieldset.js?任何见解将不胜感激!谢谢。
最佳答案
您正在使用
$(function(){...});
这是同义词
$(document).ready( function(){...} );
相反,你可以尝试
$(window).load( function(){...} );
它会在页面加载序列中稍后触发。
关于javascript - $(document).ready(function() {...}) 在插件脚本加载之前运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2978599/