防止jQuery计数器超过列表项的数量

mmvthczy  于 2023-06-05  发布在  jQuery
关注(0)|答案(1)|浏览(270)

我试图弄清楚如何动态限制jQuery计数器超过列表中的项目数。
这是我的代码。
HTML:

<div class="mobile-nav">
            <div class="left-platform-arrow"></div>  
            <div class="counter">
                <span class="number">1</span>
                <span>/</span>
                <span class="label">1</span> 
            </div>    
            <div class="right-platform-arrow"></div>     
        </div>

jQuery:

$('.right-platform-arrow').on('click', function(){
    $('.left li.selected').next().addClass('selected');
    $('.left li.selected').prev().removeClass('selected');
    $('.main .right .pane-open').next().addClass('pane-open');
    $('.main .right .pane-open').prev().removeClass('pane-open');       
    $('.number').text(function(i, t) {
        return Number(t) + 1;
    });
}); 
$('.left-platform-arrow').on('click', function(){
    $('.left li.selected').prev().addClass('selected');
    $('.left li.selected').next().removeClass('selected');
    $('.main .right .pane-open').prev().addClass('pane-open');
    $('.main .right .pane-open').next().removeClass('pane-open');
    $('.number').text(function(i, t) {
        return Number(t) - 1;
    });
}); 
$(".left .label").text(function() {
    return $(this).closest(".left").find("li").length;
});

您可以在http://clearleap.com/platform/the-clearleap-platform/clearplay/上看到当前的代码(它只显示在移动的设备上,所以可以从手机上查看)。
问题是,如果您继续单击左箭头或右箭头,则数量将超过项目的最大数量。例如,你可以让它显示77/5,这是一个相当烦人的小故障。
我该如何解决这个问题?

hc8w905p

hc8w905p1#

如果你正在做一个ul li列表,那么你可以通过使用找到ul的孩子的出现次数来计算max

$('ul').children().length;

我已经实现了一个jsfiddle,它可以在这里工作:
http://jsfiddle.net/LKTQT/2/
我这样做是为了每次按下右键时,值都会被解析,以便将其识别为整数。然后有一个if,它确保这个值不超过列表中的最大子节点数。
(我刚刚用第二个版本替换了jsfiddle,其中包括一个左按钮示例,因为我注意到在您的网站上,它也允许您进入负值)。

相关问题