[英]$(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.