【问题标题】:Flexslider count the slides on each sliderFlexslider 计算每个滑块上的幻灯片
【发布时间】:2017-12-14 11:55:29
【问题描述】:

我正在使用 Flexslider 在页面上创建多个滑块。这是一个 Wordpress,所以帖子是动态创建的。我正在用回调函数和这一行计算幻灯片:

$('.promo-image-counter').text(slider.count);

但当然它会更改所有图像计数器上的文本(所有滑块都显示最后一个滑块的幻灯片数量),我需要单独计算每个滑块上的幻灯片。

到目前为止我的代码:

$(".slider-promos").flexslider({
        animation: "slide",
        controlNav:false,
        touch:true,
        start: function(slider){
          $('body').removeClass('loading');
          $('.promo-image-counter').text(slider.count);
          $('.slides li img').show();
        }
 });

【问题讨论】:

    标签: jquery flexslider


    【解决方案1】:

    我已经用这段代码正确地计算了每个滑块上的幻灯片:

     $(".slider-promos").flexslider({
            animation: "slide",
            controlNav:false,
            touch:true,
            slideshow: false,
            start: function(slider){
              $('.slides li img').show();
              $('body').removeClass('loading');
              $(slider).find($(".promo-image-counter")).text(slider.count);
            }
        });
    

    需要使用

    $(slider).find($(".promo-image-counter")).text(slider.count); 
    

    而不是

    $(this).find($('.promo-image-counter')).text(slider.count);
    

    【讨论】:

      【解决方案2】:

      我需要单独计算每个滑块上的幻灯片。

      您已经这样做了,您的失败在于您使用最新创建的滑块实例的计数覆盖了“.promo-image-counter”内容。正如您所假设的,您希望每个滑块都有这种行为。您可以通过为每个滑块选择“.promo-image-counter”-element 来达到此目的,如下所示:

      $('.slider1.promo-image-counter').text(slider.count);
      

      【讨论】:

      • 滑块是动态创建的,我无法访问 html 并更改其代码。
      • 好的,你能把html部分显示为“.promo-image-counter”类的元素所在的位置吗?
      • 这是普通的 HTML,但每篇文章都会重复。所以想象一个有 8 个滑块的页面,它们的名称都相同,但幻灯片的数量不同。这是一个带有“.promo-image-counter”类的简单段落。我想我应该使用默认的回调功能,因为它不计算克隆的幻灯片,所以我真的不想创建一个循环,计算幻灯片和每张幻灯片等。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多