我正在通过Twitter的旋转木马(最新版本)使用bootstrap并且我已经开始工作了 - 除了它没有开始自动滑动。单击其中一个导航按钮后,它可以正常工作。不知道为什么会这样做。
这是标题中我的JS设置:
<script type="text/javascript" src="<?php echo tz_JS . '/bootstrap/jquery.js'; ?>"></script>
<script type="text/javascript" src="<?php echo tz_JS . '/bootstrap/bootstrap-carousel.js'; ?>"></script>
<script type="text/javascript" src="<?php echo tz_JS . '/bootstrap/bootstrap-transition.js'; ?>"></script>
HTML:
<div id="myCarousel" class="carousel slide">
<div class="carousel-inner">
<div class="active item">
<div class="image-position-right">
<a href="#"><img src="validimagelink.jpg" width="920" height="550" alt=""></a>
</div>
</div>
<div class="item">
<div class="image-position-right">
<a href="#"><img src="validimagelink.jpg" width="920" height="550" alt=""></a>
</div>
</div>
</div>
<a class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next">›</a>
也只是添加了这个无济于事:
<script>
$('#myCarousel').carousel({
interval: 1200
});
</script>
进行上述更改后,javascript控制台会说:
未捕获的TypeError:对象#没有方法'carousel' (匿名功能) b.extend.ready jquery.min.js:29 û
关于为什么这不起作用的任何想法?
答案 0 :(得分:38)
<script type="text/javascript">
$(document).ready(function() {
$('.carousel').carousel({
interval: 1200
})
});
</script>
如果仍然无效,请在浏览器(firebug / chrome ..)控制台中查找潜在错误。
有关
Uncaught TypeError: Object # has no method 'carousel' (anonymous function) b.extend.ready jquery.min.js:29 u
确保:
只包含一个jQuery
只包含一个bootstrap-carousel.js或bootstrap.js。
首先包含jQuery,然后是bootstrap-carousel.js或bootstrap.js,然后是$(document).ready(...
答案 1 :(得分:4)
有时使用错误版本的JQuery会影响Twitters Boostrap轮播的动作。它们目前正在运行v1.7.1,如果你使用不同它可能会导致错误。
如果你没有运行v1.7.1,可以从这里下载:
http://code.jquery.com/jquery-1.7.1.min.js
还要确保您的代码包装在准备好的文档中:
$(document).ready(function () {
// code here
});
答案 2 :(得分:1)
我有同样的问题并找到了解决方案;因为我们都将javascripts放在页面的末尾,所以函数的调用必须放在它们之后:
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.js"></script>
<script type="text/javascript">
var $ = jQuery.noConflict();
$(document).ready(function() {
$('#myCarousel').carousel({ interval: 3000, cycle: true });
});
有时您需要将JavaScript文件放在carousal之后。实际上在页面结束之前。
参考:http://twitterbootstrap.org/twitter-bootstrap-3-carousel-not-automatically-starting/
快乐的编码。感谢
答案 3 :(得分:0)
<script language="javascript" type="text/javascript">
$(window).load(function()
{
$("#slideshow > div:gt(0)").hide();
setInterval(function() {
$('#slideshow > div:first')
.fadeOut(750)
.next()
.fadeIn(1000)
.end()
.appendTo('#slideshow');
}, 11000);
});
</script>
答案 4 :(得分:0)
如果您使用NgRoute
并且上述解决方案对您不起作用,请确保在模板的最顶部包含以下javascript代码NgRoute
注入{{ 1}}:
<ng-view></ng-view>
还要确保在包含bootstrap.js之前首先包含jQuery。当我在我的项目中遇到这个问题时,这对我有帮助。