carousel next / prev按钮不起作用

时间:2017-03-26 11:36:48

标签: javascript jquery html twitter-bootstrap

我正在尝试从https://codepen.io/webcane/pen/lHGJf实施以下灯箱轮播 事情工作正常,直到我尝试旋转木马上的上一个和下一个按钮不起作用(键盘上的左右按钮确实有效)。

  // Hidden gallery
  /* activate the carousel */
  $("#modal-carousel").carousel({interval:false});

  /* change modal title when slide changes */
  $("#modal-carousel").on("slid.bs.carousel", function() {
    $(".modal-title")
    .html($(this)
    .find(".active img")
    .attr("title"));
  });

  /* when clicking a thumbnail */
  $(".row .service-icon").click(function() {
    var content = $(".carousel-inner");
    var title = $(".modal-title");

    content.empty();  
    title.empty();

    var id = this.id;  
    var repo = $("#img-repo .item");
    var repoCopy = repo.filter("#" + id).clone();
    var active = repoCopy.first();

    active.addClass("active");
    title.html(active.find("img").attr("title"));
    content.append(repoCopy);

    // show the modal
    $("#modal-gallery").modal("show");
  });

在查看我的js文件的其余部分后,我发现主题附带的以下代码影响了按钮,因为在我注释掉这段代码后,轮播按钮工作正常。

// Smooth scroll on page hash links
  $('a[href*="#"]:not([href="#"])').on('click', function() {
      if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
          var target = $(this.hash);
          if (target.length) {

              var top_space = 0;

              if( $('#header').length ) {
                top_space = $('#header').outerHeight();
              }

              $('html, body').animate({
                  scrollTop: target.offset().top - top_space
              }, 1500, 'easeInOutExpo');

              if ( $(this).parents('.nav-menu').length ) {
                $('.nav-menu .menu-active').removeClass('menu-active');
                $(this).closest('li').addClass('menu-active');
              }

              if ( $('body').hasClass('mobile-nav-active') ) {
                  $('body').removeClass('mobile-nav-active');
                  $('#mobile-nav-toggle i').toggleClass('fa-times fa-bars');
                  $('#mobile-body-overly').fadeOut();
              }

              return false;
          }
      }
  });

下面是我的轮播按钮的html。我猜测平滑的滚动代码正在 href =" #modal-carousel" 上,导致它无法正常工作。

<a class="carousel-control left" href="#modal-carousel" data-slide="prev"><i class="glyphicon glyphicon-chevron-left"></i></a>
<a class="carousel-control right" href="#modal-carousel" data-slide="next"><i class="glyphicon glyphicon-chevron-right"></i></a>

是否有任何解决方法,以便我可以同时使用这两个功能?

1 个答案:

答案 0 :(得分:0)

通过添加

解决了问题
:not([href="#modal-carousel"])

$('a[href*="#"]:not([href="#"])')

这样就会忽略 #modal-carousel