我有多个按钮,当我单击每个按钮时,我希望与该按钮关联的元素向下滑动,然后当我单击同一按钮时,同一元素也会向上滑动。下面的代码有效,但是如果我单击一个按钮,它会向下滑动,然后单击第二个按钮,则什么也不会发生,因为它会运行代码的else部分。我该如何解决?
var moreOption = 1;
$(".more-button").click(function(){
var buttonNumber = $(this).attr('buttonNumber');
if (moreOption === 1) {
$("#more"+buttonNumber).slideDown();
moreOption = 2;
} else if (moreOption === 2) {
$("#more"+buttonNumber).slideUp();
moreOption = 1;
}
});
最佳答案
只需在按钮上使用数据属性,然后手动切换状态即可,如下所示:
<button class="more-button" data-showMore="1" data-buttonNumber="1"/>
$(".more-button").click(function(){
var buttonNumber = $(this).data('buttonNumber');
var moreOption = $(this).data('showMore');
if (moreOption == '1') {
$("#more"+buttonNumber).slideDown();
$(this).data('showMore', '2');
} else if (moreOption == '2') {
$("#more"+buttonNumber).slideUp();
$(this).data('showMore', '1');
}
});