允许多个jquery导入语句

时间:2014-11-14 10:47:24

标签: javascript 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"/> 

此处在动态帮助内容页面(子页面)中,我已导入以下脚本

<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脚本..

2 个答案:

答案 0 :(得分:1)

您可以使用此代码加载jQuery,如果不是,则会将脚本附加到head-tag。

<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

答案 1 :(得分: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将自身附加到当时的jQuery副本(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
  6. 此时:

    • $ = v1.11.1的jQuery函数,其上附有DataTables插件

    • jQuery = v1.11.1的jQuery函数

    • $10 = v1.10.4的jQuery函数,附带jQuery UI插件

    出于以下几个原因,这是个坏主意:

    1. 您正在加载两个jQuery副本,这不是一个轻量级的脚本供下载

    2. 现在您必须记住是使用$(对于大多数最新版本和DataTables)还是$10(对于过时的版本和jQuery UI )。

    3. 再次:最好不要。