如何让我的按钮一次显示一个项目?

How do I make my button reveal one item at a time?

我创建了一个我想对用户隐藏的列表,以及一个我想用来逐一显示列表项的按钮。我正在使用 jquery 和 css 来 hide/display 列表项。

我的代码可以正常显示第一个 'clue' 但我的问题是如何让按钮在第二次点击时显示第二条线索,然后在第三次点击时显示第三条线索。然后在第三次点击后我想让按钮变得多余。提前致谢

$(document).ready(function() {
  $(".help").click(function() {
    $('li.hide-1').removeClass('hide-1');
  });
});
.hide-1,
.hide-2,
.hide-3 {
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="clues">
  <ul>
    <li class="hide-1">Right winger</li>
    <li class="hide-2">Established himself in the Bundesliga</li>
    <li class="hide-3">England International</li>
  </ul>
</div>
<div class="button">
  <button type="button" class="help">I need help</button>
</div>

最直接的方法是在所有 li 上放置相同的 class。然后你可以添加一个新的 class 来显示它们,你可以使用那个 class 找到下一次单击按钮时应该显示的 li。像这样:

jQuery($ => {
  $(".help").click(function() {
    var $target = $('.clue.show').next();
    if ($target.length === 0)
      $target = $('.clue:first');
      
    $target.addClass('show');
  });
});
.clue {
  display: none;
}

.clue.show {
  display: list-item;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="clues">
  <ul>
    <li class="clue">Right winger</li>
    <li class="clue">Established himself in the Bundesliga</li>
    <li class="clue">England International</li>
  </ul>
</div>
<div class="button">
  <button type="button" class="help">I need help</button>
</div>

我建议存储按钮被点击次数的计数,然后在每次删除 class 时使用这个数字。类似于:

var buttonCount = 0;
$(document).ready(function() {
    $(".help").click(function() {
        buttonCount += 1;
        $(`li.hide-${buttonCount}`).removeClass(`hide-${buttonCount}`);
    });
});

列表完成后,按钮应该什么都不做,但也有办法将其删除。这可能包括有一个限制,当您达到该限制时,使用 jquery 隐藏按钮或禁用它。或者统计以hide开头的class项的个数,如果有none则禁用按钮。

祝你好运。