使用不同版本的jQuery加载插件

时间:2014-08-15 15:05:48

标签: javascript jquery cs-cart

我试图在CS Cart网站上运行一个插件,该插件只允许jQuery 1.7+ http://owlgraphic.com/owlcarousel/是我正在使用的插件。

我在另一张故障单上找到了一段代码,允许使用noConflict方法运行两个版本的jQuery。所有原始代码都运行正常。但是这个插件没有运行,它一直在这行上抛出未捕获的TypeError: undefined is not a function错误:$j("#wrapper").owlCarousel({但是如果我在加载函数的文档中添加以下lin,它似乎运行,然后在它获得时中断到.owlCarousel函数。 - $j('body').css('background-color', 'red');

以下是我的代码细分:

//在页面顶部加载n

{script src="lib/js/jquery/jquery.min.js"}
{script src="lib/js/jquery/jquery.min.1.8.js"}

<script>var $j = jQuery.noConflict(true);</script>
    <script type='text/javascript'>
      $(document).ready(function(){
       console.log($().jquery); // This prints v1.5.2
       console.log($j().jquery); // This prints v1.8
      });
   </script>

//在大多数现有JS

之后,在页面下方加载
<script type='text/javascript'>
$j(document).ready(function(){
   $j('body').css('background-color', 'red');

$j("#wrapper").owlCarousel({

        //autoPlay: 3000, //Set AutoPlay to 3 seconds

        items : 2,
       itemsCustom : [
          [200, 2],

        ],
        navigation : true
    });

});

</script>

奇怪的是,如果我用新的jQuery替换旧版本的jQuery,它可以工作,但会破坏所有依赖于旧版本的旧代码。

我希望我提供了足够的信息。

提前致谢。

1 个答案:

答案 0 :(得分:1)

jQuery插件通常挂钩到附加到它的当前jquery版本,首先加载旧的jquery版本,然后加载将使用它的插件,然后加载新版本。

我相信“plugin1”将附加到旧版本的jquery。

{script src="lib/js/jquery/jquery.min.js"}
<script>var j1 = jQuery.noConflict(true);</script>
{script src="lib/js/jquery/plugin1.js"}

{script src="lib/js/jquery/jquery.min.1.8.js"}
<script>var j2 = jQuery.noConflict(true);</script>
{script src="lib/js/jquery/plugin2.js"}
{script src="lib/js/jquery/plugin3.js"}
抱歉我的英语。