2013-07-17 27 views
0

當我使用JQuery.load,它打破了我的其他JavaScript庫。我收到此錯誤:JQuery.load打破其他javascript

TypeError: $.doTimeout is not a function 

當我不使用它jQuery.load,做工精細。

我不明白導致這種情況發生。似乎無法從源代碼中已經呈現的JavaScript文件中找到該函數。

腳本

<script type="text/javascript" src="/assets/js/modernizr-1.7.min.js"></script> 
<script type="text/javascript" src="/assets/js/jquery.tmpl.js"></script> 
<script type="text/javascript" src="/assets/js/jquery.ba-dotimeout.js"></script> 
<script type="text/javascript" src="/assets/js/test1.js"></script> 
<script type="text/javascript" src="/assets/js/test2.js"></script> 

內test1.js

$.doTimeout("hoverOut"); 

內test2.js

$(".test").load("/test.aspx?param=" + someValue); 

jquery.ba-dotimeout.js是一個圖書館

個test1.js使用該庫做了花哨的東西

請幫

+3

我的猜測是test.aspx包含第二個覆蓋第一個的jquery庫。 –

+0

你說得對。謝謝!如果您點擊了「回答問題」按鈕,我可以將其作爲可接受的答案。 – Anna

回答

0

它看起來像是當你包含test.aspx時,jQuery.js的另一個拷貝被覆蓋了,它覆蓋了現有的版本,從而導致插件丟失(它們是在以前的版本,但不是在那個被test.aspx添加)。

從test.asmx中刪除jquery.js,或向.load中添加一個選擇器以過濾結果。

$(".test").load("/test.aspx?param=" + someValue + " #targetdivtoload"); 
1

這個問題是非常相似的,我掙扎了一個星期的人。(現在我擺脫它:)) jQuery UI " $("#datepicker").datepicker is not a function"

實際上,如果您包含2個.js庫,您必須確定它們不包含相同函數的定義。

I don't understand causes this to happen. Seems like it couldn't find the function from the JavaScript file that is already rendered on source code.

覆蓋。也可能導致相同的問題。