如何让我的按钮一次显示一个项目?
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则禁用按钮。
祝你好运。
我创建了一个我想对用户隐藏的列表,以及一个我想用来逐一显示列表项的按钮。我正在使用 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则禁用按钮。
祝你好运。