禁用列表开头/结尾的next / prev
我希望能够在第一个框时隐藏/禁用prev链接,并在最后一个框中禁用下一个链接,因为此时您可以在最后一个框中继续单击下一个,当您执行此操作时,它会中断点击上一个不再有效。 看小提琴演示
Go to Prev 1 2 3 4 5 6 7 Go to Next
var $curr = $("#start"); $curr.css("display", "inline"); $("#prev a").click(function () { $curr = $curr.prev(); $(".box").css("display", ""); $curr.css("display", "inline"); }); $("#next a").click(function () { $curr = $curr.next(); $(".box").css("display", ""); $curr.css("display", "inline"); });
我会这样做:
var $curr = $("#start"); $curr.css("display", "inline"); $("#prev a").click(function() { $curr = $curr.prev(); $(".box").css("display", ""); $curr.css("display", "inline"); $("#next").show(); if (!$curr.prev().length) { $("#prev").hide(); } }); $("#next a").click(function() { $curr = $curr.next(); $(".box").css("display", ""); $curr.css("display", "inline"); $("#prev").show(); if (!$curr.next().length) { $("#next").hide(); } });
编辑以尊重您的项目需求:
jsFiddle演示(隐藏按钮)
var currN = 5; var boxN = $('#content .box').length; $('#content .box').eq(currN).show(); function displayBox(){ pr= currN === 0 ? $('#prev').hide() : $('#prev').show() ; nx= currN === boxN-1 ? $('#next').hide() : $('#next').show() ; $('.box').eq(currN).show().siblings().hide(); } $("#prev, #next").click(function () { var whichBtn = this.id==='next' ? currN++ : currN--; displayBox(); });
你不需要禁用你的按钮, 循环!
jsFiddle演示
var $curr = $("#start"); var currN = $curr.index(); var boxN = $('#content .box').length; $curr.css("display", "inline"); function displayBox(){ if(currN === -1){ currN = boxN-1; }else{ currN = currN % boxN; } $('.box').eq(currN).show().siblings().hide(); } $("#prev a").click(function () { currN--; displayBox(); }); $("#next a").click(function () { currN++; displayBox(); });
我在这里创建了一个简化版本(你不需要#start
):
jsFiddle演示2(简化)
这就是你所需要的:
var currN = 5; // set here start slide! (zero index based) var boxN = $('#content .box').length; $('#content .box').eq(currN).show(); function displayBox(){ var curBox = currN === -1 ? currN=boxN-1 : currN=currN%boxN; $('.box').eq(currN).show().siblings().hide(); } $("#prev, #next").click(function () { var whichBtn = this.id==='next' ? currN++ : currN-- displayBox(); });