【问题标题】:Why my <li> doesn't get "active"?为什么我的 <li> 没有“活跃”?
【发布时间】:2016-07-15 00:19:32
【问题描述】:

我的自定义引导轮播有点问题.. 我的&lt;li&gt; 没有上课active...

$(document).ready(function() {
  $(".carousel").carousel({
    interval: 2000
  });
  $(".carousel").on("slid", function() {
    var to_slide;
    to_slide = $(".carousel-item.active").attr("data-slide-no");
    $(".myCarousel-target.active").removeClass("active");
    $(".carousel-indicators [data-slide-to=" + to_slide + "]").addClass("active");
  });
  $(".myCarousel-target").on("click", function() {
    $(this).preventDefault();
    $(".carousel").carousel(parseInt($(this).attr("data-slide-to")));
    $(".myCarousel-target.active").removeClass("active");
    $(this).addClass("active");
  });
});

还有我的小提琴fiddle boot carousel

【问题讨论】:

  • 好吧,如果我没记错的话,我看不到任何带有 .myCarousel-target 类的元素!
  • 似乎不适用于自动幻灯片..

标签: html css twitter-bootstrap carousel


【解决方案1】:

问题是由于没有一个名为 .myCarousel-target 的类,并且当没有默认事件在普通 li 上运行时,还有一个 preventDefault()

试试这个 JS:

$(".carousel-indicators li").on("click", function() {
  $(".carousel").carousel(parseInt($(this).attr("data-slide-to")));
  $(".carousel-indicators li.active").removeClass("active");
  $(this).addClass("active");
});

JSFiddle of working example

【讨论】:

  • 嗯,会再调查一下
【解决方案2】:

这是一个更新的 fiddle。我已将块 $(".carousel").on("slid", function() { 重新格式化如下。

$(".carousel").on("slid.bs.carousel", function () {
    var act = $('.carousel-indicators li.active').next();
    if (act[0] == undefined) {
        act = $('.carousel-indicators li:first-child');
    }
    $('.carousel-indicators li').removeClass("active");
    act.addClass("active");
});

【讨论】:

  • 似乎是最好的解决方案但是当点击“li”时不再对应它的“slide”
  • @angelilo_ : Updated fiddle$(".carousel").on("slid.bs.carousel", function () { 更改为 $(".carousel").on("slid.bs.carousel slid", function () {
  • 不幸的是,我意识到这不起作用。当我点击一个数字时,它会改变显示顺序,什么都没有……jsfiddle.net/pj1t22my/7
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
  • 2016-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
相关资源
最近更新 更多