我得到一個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在我的$()就緒處理程序運行之前沒有加載?任何有識之士將不勝感激!謝謝。
謝謝!這似乎很有前途;我會在星期一嘗試一下 – RMorrisey 2010-06-05 19:00:17
我誤以爲這是一個時間問題。我得到的錯誤掩蓋了實際問題,這是有問題的外部.js文件中的語法錯誤。將命令腳本分配給窗口加載事件似乎已經暴露了底層問題。 – RMorrisey 2010-06-07 15:51:16