我试图在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,它可以工作,但会破坏所有依赖于旧版本的旧代码。
我希望我提供了足够的信息。
提前致谢。
答案 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"}
抱歉我的英语。