我正在this网站上工作(我不是那个网站的人,但我不得不修复它)。 我在firebug上遇到了这个错误: TypeError:j(...)。bxSlider不是函数
这是我的<head>
:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script type="text/javascript" src="/wp-content/themes/aykamakina/bxslider/jquery.bxslider.min.js"></script>
<link type="text/css" href="/wp-content/themes/aykamakina/bxslider/jquery.bxslider.css" rel="stylesheet" media="all">
<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css" media="all">
<script type="text/javascript" src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script src="/wp-content/themes/aykamakina/tabs/js/easyResponsiveTabs.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="/wp-content/themes/aykamakina/tabs/css/easy-responsive-tabs.css">
<link rel="stylesheet" href="/wp-content/themes/aykamakina/fancybox/source/jquery.fancybox.css" type="text/css" media="screen">
<script type="text/javascript" src="/wp-content/themes/aykamakina/fancybox/source/jquery.fancybox.js"></script>
这是我的标记:
<div class="the-main-slider-container">
<ul class="bxslider">
<li>
<img alt="slider" src="/wp-content/uploads/2014/03/slider-1.jpg">
</li>
<li>
<img alt="slider" src="/wp-content/uploads/2014/03/slider-2.jpg">
</li>
<li>
<img alt="slider" src="/wp-content/uploads/2014/03/slider-3.jpg">
</li>
<li>
<img alt="slider" src="/wp-content/uploads/2014/03/slider-4.jpg">
</li>
<li>
<img alt="slider" src="/wp-content/uploads/2014/03/slider-5.jpg">
</li>
</ul>
<div id="bx-pager">
<div class="pager-wrapper">
<div class="pager-container">
<a data-slide-index="0" href=""><img alt="icone" src="/wp-content/uploads/2014/03/D320-icone-features-features.png"></a>
<a data-slide-index="1" href=""><img alt="icone" src="/wp-content/uploads/2014/03/D320-icone-features-confezioni.png"></a>
<a data-slide-index="2" href=""><img alt="icone" src="/wp-content/uploads/2014/03/D320-icone-features-vantaggi.png"></a>
<a data-slide-index="3" href=""><img alt="icone" src="/wp-content/uploads/2014/03/D320-icone-features-specifiche.png"></a>
<a data-slide-index="4" href=""><img alt="icone" src="/wp-content/uploads/2014/03/d320-icone-compact2.png"></a>
</div>
</div>
</div>
</div>
这是脚本:
<script type="text/javascript">
var j = jQuery.noConflict();
j(document).ready(function()
{
j('.bxslider').bxSlider({
pagerCustom: '#bx-pager',
mode: 'fade'
});
});
j(function ($) {
j(document).ready(function(){
j('.slider8').bxSlider({
mode: 'vertical',
slideWidth: 300,
minSlides: 2,
slideMargin: 10
});
});
});
j(document).ready(function() {
j(".various").fancybox({
maxWidth : 450,
maxHeight : 400,
fitToView : false,
width : '70%',
height : '70%',
autoSize : false,
closeClick : false,
openEffect : 'none',
closeEffect : 'none'
});
});
</script>
正如您所看到的,我已经尝试使用 noConflict; ,因为我在互联网上看到了大量有相同错误的帖子,看起来他们中的大多数都解决了noConflict的问题;但它不适合我。
顺便说一下,所有的滑块都是用一个名为 Cyclone Slider 的插件制作的,我真的不知道以前的开发者做过什么......
标记看起来很好。我无法发现错误。任何帮助将非常感激。非常感谢你的时间!
编辑#1 :我在源代码中找到了jQuery的其他实例;
<script type='text/javascript' src='http://reformpackagingmachine.com/wp-includes/js/jquery/jquery.js?ver=1.10.2'></script>
<script type='text/javascript' src='http://reformpackagingmachine.com/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js?ver=3.50.0-2014.02.05'></script>
<script type='text/javascript' src='http://reformpackagingmachine.com/wp-includes/js/jquery/jquery.masonry.min.js?ver=2.1.05'></script>
<script type='text/javascript' src='http://reformpackagingmachine.com/wp-content/plugins/cyclone-slider-2/libs/cycle2/jquery.cycle2.min.js?ver=2.8.2'></script>
<script type='text/javascript' src='http://reformpackagingmachine.com/wp-content/plugins/cyclone-slider-2/libs/cycle2/jquery.cycle2.carousel.min.js?ver=2.8.2'></script>
<script type='text/javascript' src='http://reformpackagingmachine.com/wp-content/plugins/cyclone-slider-2/libs/cycle2/jquery.cycle2.swipe.min.js?ver=2.8.2'></script>
<script type='text/javascript' src='http://reformpackagingmachine.com/wp-content/plugins/cyclone-slider-2/libs/cycle2/jquery.cycle2.tile.min.js?ver=2.8.2'></script>
<script type='text/javascript' src='http://reformpackagingmachine.com/wp-content/plugins/cyclone-slider-2/libs/cycle2/jquery.cycle2.video.min.js?ver=2.8.2'></script>
答案 0 :(得分:16)
在尝试了很多不同的事情后,我设法解决了自己的问题。我把bxSlider,easyResponsiveTabs的JavaScript文件和调用它们的脚本放到 footer.php 。但是我离开了jQuery&amp; header.php 上的jQuery UI文件以及滑块的css文件。
现在一切正常,标记通过了验证测试! 如果你有同样的错误;
你也可以写信给我,我可以尝试帮助。
答案 1 :(得分:0)
最有可能的原因是jQuery的多个实例。再往下看,你会看到WP插入了更多的标签,其中一个看起来像是jQuery。
jQuery的第二个实例可能是由插件插入的。尝试识别哪个并禁用以查看它是否解决了问题。
答案 2 :(得分:0)
有些人回答说检查jQuery脚本,确保只有一个。但不回答&#34;为什么?&#34;题。我有同样的(这个问题)问题,但已经解决了。 bxSlider的(链接的)JS文件为jQuery创建一个函数,后来的文件覆盖了这个函数(删除它,因为jQuery最初不包含bxSlider的东西)。所以答案是:在最后一个jQuery JS文件链接之后放置JS链接,然后工作。