Bootstrap Carousel不会自动滑动

时间:2012-06-27 19:17:31

标签: javascript twitter-bootstrap

我正在通过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 û

关于为什么这不起作用的任何想法?

5 个答案:

答案 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。当我在我的项目中遇到这个问题时,这对我有帮助。