0

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

我在另一张票上找到了一段代码,它允许使用 noConflict 方法运行两个版本的 jQuery。所有原始代码都运行良好。但是这个插件没有运行,它一直抛出错误 Uncaught TypeError: undefined is not a functionon this line:$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,它可以工作,但会破坏所有依赖旧版本的旧代码。

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

提前致谢。

4

1 回答 1

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"}

对不起我的英语不好。

于 2014-09-04T02:00:39.583 回答