单击按钮后逐个淡化两个或多个div

时间:2016-04-26 18:05:11

标签: javascript jquery fadein fade fadeout

我希望淡出第一个div并淡入下一个div。

如果我点击第二个div按钮,第二个div应该淡出,第三个div应该淡入。

我试试这个JS:

    $(function () {
        var fragen_gesamt = $('.dmd-container-frage').length;
        $('.dmd-container-frage').hide();
        $('.dmd-container-frage:first-child').show();
        $('.btn').on('click', function () {
            $('.dmd-container-frage:first-child').fadeOut(500, function () {
                $(this).next('.dmd-container-frage').fadeIn(1000);
            });
        });
    });

但它只会消失到第二个div。

https://jsfiddle.net/neo3d0m2/

1 个答案:

答案 0 :(得分:2)

您需要在单击功能中更改选择器。现在你找到第一个块,然后是fadein next(这是第二个),你需要的是找到点击按钮的父节点并根据这个元素做其余的逻辑:

    $(function() {
      var fragen_gesamt = $('.dmd-container-frage').length;
      $('.dmd-container-frage').hide();
      $('.dmd-container-frage:first-child').show();
      $('.btn').on('click', function() {
        $(this).closest('.dmd-container-frage').fadeOut(500, function() {
          var $el = $(this).next('.dmd-container-frage');
          // Check if there is next element
          if ($el.length) {
            $(this).next('.dmd-container-frage').fadeIn(1000);
          } else {
            alert('done!')
          }

        });
      });

    });

查看这个小提琴 - fiddle