繁体   English   中英

jQuery ul li单击移至列表中的下一个

[英]JQuery ul li click move to next in list

好的,几乎在那里,希望使用Jquery和CSS类(图像)在HTML ul li列表中上下导航,就像选择选项下拉菜单一样,只希望只显示1个项目,而不是下拉按钮,但是下一个/上一个CSS类可以通过列表工作,一次仅显示一个项目,因此整个效果有点像微调器。 例如

$('.next').click (function( MOVE TO NEXT ITEM IN LIST ))
$('.prev').click (function( MOVE TO PREV ITEM IN LIST ))

列表有点像

<ul class="">
<li> Item 1</li>
<li> Item 2</li>
<li> Item 3</li>
<li> etc ....
</ul>
<img src="but..." class="next">
<img src="but..." class="prev">

请提出建议-并先谢谢

人们需要在发布代码之前检查其代码! 上述答案均无效。

我修复:

 var active = 0; // starts at zero
 var list = $('ul');

 list.children('li').eq('0').siblings().hide(); // Hide all except first list element

 $('.next').bind('click', function() {
  active = active == list.children('li').length-1 ? 0 : active + 1;
 });

 $('.prev').bind('click', function() {
  active = active == 0 ? list.children('li').length-1 : active - 1;
 });


 var getActive = function() {
  return list.children('li').eq(active);
 };

 $('.prev,.next').bind('click', function() {
  getActive().show().siblings().hide();
 });
var active = 0; // starts at zero
var list = $('ul');

$('.next').bind('click', function() {
    active = active == list.length-1 ? 0 : active + 1;
});

$('.prev').bind('click', function() {
    active = active == 0 ? list.length-1 ? active - 1;
});

var getActive = function() {
    return list.children('li').eq(active);
};

现在,使用getActive()获取活动列表元素。

UPDATE :如果要隐藏除活动列表项以外的所有项,只需添加:

$('.prev,.next').bind('click', function() {
    getActive().show().siblings().hide();
});

如果我正确理解了您的问题,则一次只希望显示一个列表元素。 为此,我将修改David的答案中的函数以执行类似的操作。

var active = 0; // starts at zero
var list = $('ul');

var hideListItems = function(active) {
    $.each(list, function(count, item) {
        if (count !== active) {
            item.css({'display': 'none'});
        } else {
            item.css({'display': 'block'});
        }
    }
};

$('.next').bind('click', function() {
    active = active == list.length-1 ? 0 : active + 1;
    hideListItems(active);
});

$('.prev').bind('click', function() {
    active = active == 0 ? list.length-1 ? active - 1;
    hideListItems(active);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM