2014-11-14 75 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