簡體   English   中英

$(document).ready(function(){…})在插件腳本加載之前運行

[英]$(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代碼的順序如下:

  1. jQuery的1.4.2 special.js
  2. jQuery.noConflict()調用
  3. jquery.collapsiblefieldset.js //定義$ .fn.collapse
  4. jQuery('#collapse119')。collapse(...)被稱為

當此代碼在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM