在同一页面中使用两个版本的jquery将返回'未定义不是函数'

using two versions of jquery in the same page returns 'Undefined is not a function'

本文关键字:jquery 返回 函数 未定义 版本 两个 一页      更新时间:2023-09-26

我尝试在同一页面中使用jQuery_1_9_1和jQuery_1_4_2但当我试图打开页面中的弹出窗口时未定义的类型此时错误"未定义不是函数"

jQuery_1_9_1.fn.track=function(){
    jQuery_1_9_1(this).each(function(){
        return new Track(jQuery_1_9_1(this));

我还在我的页面中使用Mootools。有人能帮助我为什么会出现这个错误吗。

编辑

<script type='text/javascript' src='../assets/js/jquery-1.4.2.min.js'></script>
<script type='text/javascript'> var jq = jQuery.noConflict(); </script>

我在我的模板文件和中给出了1.4.2

<script type='text/javascript' src='../assets/js/jquery-1.9.1.min.js'>
<script type="text/javascript"> var jQuery_1_9_1 = jQuery.noConflict(true); </script> 

在一个常用的JSP 中

首先,您不需要在单个页面上使用多个版本的JQuery来实现所需的功能。

其次,由于您使用的是Mootools和JQuery,最好使用以下替代方案,而不是JQuery中默认的$

  1. 直接使用jQuery实例
  2. 使用var jQ = jQuery.noConflict();

此外,像这样的应用程序最好使用异步模块定义,比如RequireJS,以确保只加载特定功能所需的JS文件。