我正在使用T3框架开发一个Joomla 3模板,并且我已经包含一个使用IceCarousel
插件的Flexslider
模块。但是,IceCarousel
模块无效,因为存在javascript错误:
$(...).flexslider is not a function
Line 477
我已经看过页面源代码,而flexslider源代码文件肯定存在。还有一个/media/jui/jquery-noconflict.js
文件是Joomla 3的标准配置。我不确定这是否是造成问题的原因。这是javascript文件堆叠顺序的问题吗?
答案 0 :(得分:17)
您已经定义了两次jquery。删除一个jquery http://gyazo.com/c784a654eefe6e1b6ac061e562f3f051
答案 1 :(得分:0)
尝试简化代码以测试是否存在计时问题,例如:
$(document).ready(function() {
$('#icecarousel119').flexslider({
selector: ".slides > div",
animation: "slide",
direction: "horizontal",
itemWidth:90,
slideshowSpeed:5000,
animationspeed:600,
itemMargin:0,
minItems:1,
maxItems:0,
move: 0,
slideshow: false,
directionNav: true,
controlNav: true,
start: function(slider){
$('body').removeClass('loading');
}
});
});
});
另外,flexslider示例使用class而不是id(虽然我不认为这会导致问题)
答案 2 :(得分:0)
我遇到了同样的问题并修复了它。我只使用了jquery.js文件的一个实例,但仍然遇到了同样的问题。
自我调查后我终于得到了问题并修复了它,请记住不要在下面的2个文件中使用defer或async关键字:
1- jquery.flexslider-min.js
2- jquery.prettyPhoto.js
答案 3 :(得分:0)
对于使用Wordpress并收到此错误的人:
确保指向FlexSlider js的链接(即:<script defer src="<?php bloginfo('template_url'); ?>/js/jquery.flexslider-min.js"></script>
)低于<?php wp_head(); ?>
这适用于在header.php文件中加载脚本。更好的做法是将所有j加载到页脚中,但有时可能无法控制页脚。
希望这可以帮助别人,因为它帮助了我:)。