重复一次功能3次,但每次都改变.animation

时间:2015-10-16 22:48:27

标签: jquery arrays jquery-ui jquery-selectors repeat

我在一个名为#deck的主要div上堆叠了一堆div。如果我点击#deck,则顶部div会向左移动,并会添加一些类(例如:.addClass('on-discard-pile'))。

如果我再次点击#deck,则下一个顶部div会移到上一个div顶部的左侧。我有以下工作代码:

    var z = 1;
    $('#deck .card.flipped').on('click', function () {
        if (!$(this).hasClass('dropped')) {
            $('.card').removeClass('ui-front');
            $(this)
                .addClass('ui-front')
                .addClass('on-discard-pile')
                .addClass('dropped')
                .css({'z-index': z++})
                .animate({left: '8rem'}, 200)
                .draggable({ disabled: false})
                .removeClass('flipped');

            set(moveCount, moveCount.value + 1);

            if (!$(this).is(':first-child')) {
                $('.card').removeClass('under-card');
                $(this).next().addClass('under-card'); 
            } else {
                $('.card').removeClass('under-card');
            }
        }
    });

这一切都很好,但我想稍微改变一下这个功能。我没有移动顶部div,而是想从#deck移动前三个div。我不想把div移到彼此之上,但是彼此略微超过。因此,第一个顶部div必须向左移动8rem,然后将秒顶部div移至10rem,最后移至12rem

那不是全部,最后一个div(转到12rem并拥有最高的z-index)应该是唯一得到.draggable({ disabled: false})的div,但是(如果我是另一个)再次点击#deck.draggable({ disabled: false})应再次删除并添加到新的顶部div。

因此,唯一具有最高z-index和类on-discard-pile的div应该具有.draggable({ disabled: false})

怎么做?在网上进行了一些搜索,查看了looprepeatarray:lt(),但没有找到工作。

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

使用"触发":$( '#deck .card.flipped' ).last().trigger("click",[2])

解决了这个问题