2014-11-14 76 views
-1

jQuery的導入語句允許多個jQuery的import語句

<script src="js/jquery-ui-1.10.4/jquery-1.11.1.min.js"></script> 
    <script src="js/DynamicTable/jquery.dataTables.js"></script> 
    <link rel="stylesheet" type="text/css" href="js/DynamicTable/jquery.dataTables.css"/> 
    <jsp:include page="DynamicHelpContent"/> 

在這裏,在dynamichelp內容頁(子頁)我已經導入下面的腳本父頁面

<script src="js/jquery-ui-1.10.4/jquery-1.11.1.min.js"></script> 
<script src="js/jquery-ui-1.10.4/ui/minified/jquery-ui.min.js"></script> 
<script src="js/jquery-ui-1.10.4/ui/jquery.ui.widget.js"></script> 
<script src="js/jquery-ui-1.10.4/ui/jquery.ui.position.js"></script> 
<script src="js/jquery-ui-1.10.4/ui/jquery.ui.tooltip.js"></script> 

由於在動態幫助內容我進口由於jquery-1.11.1.min.js導入語句,無法查看我的子頁面的功能。

能否請你提供我的方式讓我可以允許多張Jquery的腳本..

+0

可能的重複[模擬一個「include \ _once」for jQuery](http://stackoverflow.com/questions/7887735/simulate-an-include-once-for-jquery) –

+1

爲什麼不刪除jquery調用在你的孩子頁面上? – euvl

+0

使用$ .noConflict(); – rjdmello

回答

1

兩者能否請您給我的方式讓我可以允許多張Jquery的腳本..

是的,但你不應該這樣做。相反,找到一組只能使用jQuery副本的插件。如果您必須保留兩個腳本標記,但您只需要加載其中一個腳本標記,則ZarX's answer(+1)顯示了一種方法。

如果你真的想兼得v1.11.1和v1.10.4的頁面上,你可以這樣做:

<script src="js/jquery-ui-1.10.4/jquery-1.11.1.min.js"></script> 
<script src="js/DynamicTable/jquery.dataTables.js"></script> 
<link rel="stylesheet" type="text/css" href="js/DynamicTable/jquery.dataTables.css"/> 

然後:

<script src="js/jquery-ui-1.10.4/jquery-1.11.1.min.js"></script> 
<script src="js/jquery-ui-1.10.4/ui/minified/jquery-ui.min.js"></script> 
<script src="js/jquery-ui-1.10.4/ui/jquery.ui.widget.js"></script> 
<script src="js/jquery-ui-1.10.4/ui/jquery.ui.position.js"></script> 
<script src="js/jquery-ui-1.10.4/ui/jquery.ui.tooltip.js"></script> 
<script> 
var $10 = jQuery.noConflict(true); 
</script> 

什麼情況是:

  1. jQuery 1.11.1加載
  2. DataTables將自己附加到當時的副本o ˚FjQuery的(v1.11.1)
  3. jQuery的1.10.4被加載時,接管$jQuery符號
  4. jQuery UI的本身附着到當時最新的jQuery(v1.10.4)的拷貝
  5. var $10 = jQuery.noConflict(true);告訴v1.10.4釋放$jQuery符號,恢復其先前的值(v1.11.1)(更多:noConflict

此時:

  • $ = jQuery函數爲v1.11.1,與數據表插件連接到它

  • jQuery = jQuery函數爲v1.11.1太

  • $10 = jQuery函數爲1.10。4,用jQuery UI的插件安裝到它

這是一對夫婦的原因,一個壞主意:

  1. 你加載jQuery的,這不完全是一個的兩個副本輕量級腳本下載

  2. 現在你要記得是否使用$(對於大多了最新版本和數據表)或$10(對於超出的最新版本和jQuery UI)。

所以再次:最好不要。

+0

非常感謝您的詳細信息... –

1

您可以使用此代碼加載jQuery的,其追加的腳本頭標記,如果它不是。

<script type="text/javascript"> 
if (!window.jQuery) { 
    var jq = document.createElement('script'); jq.type = 'text/javascript'; 
    // Path to jquery.js file, eg. Google hosted version 
    jq.src = '/path-to-your/jquery.min.js'; 
    document.getElementsByTagName('head')[0].appendChild(jq); 
} 
</script> 

http://jquery-howto.blogspot.se/2009/03/check-if-jqueryjs-is-loaded.html