如何为滑块中的每张幻灯片迭代jQuery函数?

uxkidd

简介:这样做的目的是显示一个三部分的滑块,用户可以单击该滑块,并且他们可以使用每张幻灯片上的索引将该幻灯片上的卡片过滤为特定主题。筛选器工作正常,但是JavaScript填充索引时存在一个问题:它填充了所有3张卡片的索引,并在每张幻灯片上显示了较大的索引。相反,每张幻灯片的索引必须唯一,并且仅包含同一张幻灯片中卡片的标签。我真的想避免为不同的幻灯片重复代码。

的HTML

以下HTML包含3(li)张幻灯片。每张幻灯片均包含一个可见索引(.hashtag-list)和一个或多个商品卡片(.item)。除了第一个以外的每个(.item)都包含一个具有一个或多个主题标签值的隐藏输入。

<li class="trend-cards">
    <div class="card-items">
        <div class="item trendingtopiccardblock">
            <div class="hashtag-list"></div>
        </div>
        <div class="item">
            <input class="tags" type="hidden" value="TopicA,TopicB"/>
        </div>
        <div class="item">
            <input class="tags" type="hidden" value="TopicC"/>
        </div>
    </div>
</li>
<li class="trend-cards">
    <div class="card-items">
        <div class="item trendingtopiccardblock">
            <div class="hashtag-list"></div>
        </div>
        <div class="item">
            <input class="tags" type="hidden" value="TopicC, TopicD"/>
        </div>
        <div class="item">
            <input class="tags" type="hidden" value="TopicA,TopicC,TopicD"/>
        </div>
    </div>
</li>
<li class="trend-cards">
    <div class="card-items">
        <div class="item trendingtopiccardblock">
            <div class="hashtag-list"></div>
        </div>
        <div class="item">
            <input class="tags" type="hidden" value="TopicA, TopicD"/>
        </div>
        <div class="item">
            <input class="tags" type="hidden" value="TopicB,TopicC,TopicD"/>
        </div>
    </div>
</li>

的JavaScript

下面的jQuery从.tags类中提取值,将它们存储在数组中,删除重复项,对它们进行排序,然后将HTML填充到回调中。(忽略countryButtons和国家数组,因为这无关紧要。)

    populateHashtagList: function() {

        var $cards = $(".card-items .tags");
        var list = [];
        var $countryButtons = $('.card-filtering li .country-filtering');
        var countries = [];

        $countryButtons.each(function() {
           countries.push(this.firstChild.data.replace("#", "").toLowerCase());
        });

        //Get tag values, set to lowercase and store in List array
        $cards.each(function() {
            var tags = getTags($(this).val());
            $(tags).each(function (index, value) {
                var tagValue = value.toLowerCase();
                if($.inArray(tagValue, countries) === -1) list.push(value);
            });

        });

        //Remove duplicates from the array
        var uniqueTags = [];
        $.each(list, function(i, el){
            if($.inArray(el, uniqueTags) === -1) uniqueTags.push(el);

        });
        uniqueTags.sort(); 

        function getTags(parameter) {
            var arr = parameter.split(',');
            return arr;
        }

        //Populate hash-tag List
        var hashtagList = $('.hashtag-list');

        populateHashtagList();

        function populateHashtagList(callback) {

            $.each(uniqueTags, function(i, el){
                var htmlToInsert = '<span class="active"><a href="#">' + el + '</a></span>';
                hashtagList.append(htmlToInsert);
            });

            if(typeof callback == "function")
            callback();  
        }
    }

我尝试过的

  • 使用$(“。trend-cards”)。each函数隔离该函数。这导致了相同的大列表,但在每张幻灯片上都增加了三倍。
  • 将更具体的路径添加到.tags选择器,这没有改变。
  • 一旦设置了.tags变量,就使用父选择器,然后从那里调用函数的其余部分。在这种情况下,不会填充任何标签。

感谢您对此的任何反馈和投入。我想学习将来如何做得更好。非常感谢你!

麦格

将此代码包装在.each()函数中是此处的最佳解决方案。您说过您尝试过,但您可能忘记了为卡片和标签列表选择器指定父元素。

这是一个工作示例:https : //jsfiddle.net/k3oajavs/

$(".trend-cards").each(function(){
    var $cards = $(".card-items .tags", this);
    // ...
    var hashtagList = $('.hashtag-list', this);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使JQuery滑块仅更改页面刷新上的幻灯片

来自分类Dev

在JSSOR中,如何将其他幻灯片添加到全宽滑块?

来自分类Dev

使用幻灯片功能中的jQuery ui参数的jQuery自定义滑块(?)

来自分类Dev

Angular UI Bootstrap滑块每张幻灯片有多个项目

来自分类Dev

如何在RStudio中的ioslides中为每张幻灯片添加徽标

来自分类Dev

需要获取当前的幻灯片编号-基本的JQuery滑块

来自分类Dev

如何为幻灯片放下Jquery的addClass动画?

来自分类Dev

jQuery中的滑块,可同时显示4张幻灯片

来自分类Dev

我们如何为每张幻灯片(而不是每个片段)创建一个PDF页面?

来自分类Dev

每张幻灯片如何显示2张图像?

来自分类Dev

如何使用php while循环在旋转木马中显示每张幻灯片2张图像?

来自分类Dev

CSS:我们如何在滑块中制作幻灯片动画?

来自分类Dev

感谢滑块。但是如何添加自定义文本并登录每张幻灯片的中心?谢谢

来自分类Dev

如何为幻灯片放下Jquery的addClass动画?

来自分类Dev

在VBA中,如何按顺序向每张幻灯片添加图像?

来自分类Dev

在JQuery Cycle中,如何获取当前幻灯片的src?

来自分类Dev

jQuery Cycle2滑块-数字寻呼机如何更改活动幻灯片的属性

来自分类Dev

jQuery滑块的幻灯片上的默认灰色背景

来自分类Dev

在JSSOR中,如何将其他幻灯片添加到全宽滑块?

来自分类Dev

使用幻灯片功能中的jQuery ui参数的jQuery自定义滑块(?)

来自分类Dev

jQuery Fluid_dg滑块集设置幻灯片

来自分类Dev

如何停止在jQuery中循环播放幻灯片

来自分类Dev

jQuery滑块:淡化非活动幻灯片

来自分类Dev

如何为每张幻灯片分别设置字幕动画

来自分类Dev

如何在fancybox灯箱中为每张幻灯片添加音频

来自分类Dev

创建具有onclick幻灯片功能的jQuery滑块

来自分类Dev

如何处理克隆的幻灯片以在SlickJS中创建无缝的html5视频滑块?

来自分类Dev

在每张幻灯片上插入文本

来自分类Dev

如何将滑块项目符号链接到 javascript 中的相关幻灯片

Related 相关文章

  1. 1

    如何使JQuery滑块仅更改页面刷新上的幻灯片

  2. 2

    在JSSOR中,如何将其他幻灯片添加到全宽滑块?

  3. 3

    使用幻灯片功能中的jQuery ui参数的jQuery自定义滑块(?)

  4. 4

    Angular UI Bootstrap滑块每张幻灯片有多个项目

  5. 5

    如何在RStudio中的ioslides中为每张幻灯片添加徽标

  6. 6

    需要获取当前的幻灯片编号-基本的JQuery滑块

  7. 7

    如何为幻灯片放下Jquery的addClass动画?

  8. 8

    jQuery中的滑块,可同时显示4张幻灯片

  9. 9

    我们如何为每张幻灯片(而不是每个片段)创建一个PDF页面?

  10. 10

    每张幻灯片如何显示2张图像?

  11. 11

    如何使用php while循环在旋转木马中显示每张幻灯片2张图像?

  12. 12

    CSS:我们如何在滑块中制作幻灯片动画?

  13. 13

    感谢滑块。但是如何添加自定义文本并登录每张幻灯片的中心?谢谢

  14. 14

    如何为幻灯片放下Jquery的addClass动画?

  15. 15

    在VBA中,如何按顺序向每张幻灯片添加图像?

  16. 16

    在JQuery Cycle中,如何获取当前幻灯片的src?

  17. 17

    jQuery Cycle2滑块-数字寻呼机如何更改活动幻灯片的属性

  18. 18

    jQuery滑块的幻灯片上的默认灰色背景

  19. 19

    在JSSOR中,如何将其他幻灯片添加到全宽滑块?

  20. 20

    使用幻灯片功能中的jQuery ui参数的jQuery自定义滑块(?)

  21. 21

    jQuery Fluid_dg滑块集设置幻灯片

  22. 22

    如何停止在jQuery中循环播放幻灯片

  23. 23

    jQuery滑块:淡化非活动幻灯片

  24. 24

    如何为每张幻灯片分别设置字幕动画

  25. 25

    如何在fancybox灯箱中为每张幻灯片添加音频

  26. 26

    创建具有onclick幻灯片功能的jQuery滑块

  27. 27

    如何处理克隆的幻灯片以在SlickJS中创建无缝的html5视频滑块?

  28. 28

    在每张幻灯片上插入文本

  29. 29

    如何将滑块项目符号链接到 javascript 中的相关幻灯片

热门标签

归档