2013-04-10 156 views
0

我正在制作自行车目录,其中包括过滤和Lightbox以获取详细信息。jQuery:.is:具体类的最后一个孩子(或第一个孩子)

自行车概述包括一个很大的里面有李,其中每个李代表一辆自行车。详细信息(用于过滤)通过数据属性进行设置和读取。如果li的类别为.show它与过滤条件相匹配,并因此显示在概述中。

当浏览灯箱(上/下一个箭头)的用户应该只看到符合条件的自行车(有.show),这是我有工作。

最后一步(我问这个问题)是:在灯箱中,当第一辆自行车处于活动状态时,我希望“上一个”箭头消失,而最后一辆自行车时,“下一个”箭头应该消失活性。

我尝试这样做:

if (info.is(":last-child")) { 
    lightbox.find(".lightbox-nav-next").hide(); 
} else { 
    lightbox.find(".lightbox-nav-next").show(); 
}; 

哪里info是在那一刻灯箱正在显示li

我想知道为什么info.is(":last-child")不工作...我认为这是因为它选择最后一个孩子,而不考虑它是否有类.show

解决此问题的最佳方法是什么? 在此先感谢!

编辑: 我在说的网页是在线:http://dev.onefinitystudios.com/rvs/verkoop.html。 javascript所在的文件是catalogus.js。

+3

这将是很高兴看到你正在使用的代码。 jsFiddle.net的一个例子也会有很长的路要走。 – j08691 2013-04-10 13:48:26

+0

我的不好,我添加了一个网址到在线版本! – 2013-04-10 13:54:52

回答

3

可以使用:last选择器。

需要检查的是info是否与show的最后一项相同,可以用$('.show:last').is(info)来实现。

if ($('.show:last').is(info)) { 
    lightbox.find(".lightbox-nav-next").hide(); 
} else { 
    lightbox.find(".lightbox-nav-next").show(); 
} 
+0

的孩子,谢谢!这完美的作品!我感觉很蠢,因为没有考虑这个...... – 2013-04-10 13:56:56

0

您还可以使用jQuery。去年()

jQuery的。去年()选择最后一个孩子反正

所以,你的代码将是这样的:

if (info.last()) { 
    lightbox.find(".lightbox-nav-next").hide(); 
} else { 
    lightbox.find(".lightbox-nav-next").show(); 
}; 

http://api.jquery.com/last/

+0

我知道,但使用'.last()'我不能指定只搜索具有特定类('.show')的元素...所以它是相同的,对吗? – 2013-04-10 13:52:52

+0

我说的方式和你在代码机器人中说的方式都是寻找最后一个孩子,他们两个都不检查最后一个li是否包含类.show。 您需要在if语句中运行另一个检查以查看最后一个li是否包含类show – Andrew 2013-04-10 13:59:34

+0

您可能需要显示更多代码和工作方式。因为我不知道一切是如何工作的 – Andrew 2013-04-10 14:01:35

0

试试:last(是的,它不是来自CSS,而是一个jQuery加入)

if (info.is(":last")) { 
    ... 

Docs

1
lightbox.find(".lightbox-nav-next").toggle(function() { 
    return ! info.is(".show:last"); 
}); 

lightbox.find(".lightbox-nav-prev").toggle(function() { 
    return ! info.is(".show:first"); 
}); 
+0

谢谢你的回答,但是Arun P Jonhy已经解决了它。 – 2013-04-10 14:00:57

+0

@Cas我主要留下它,因为使用'.toggle()'而不是“if(x)then .show()else .hide()”构造。 – Tomalak 2013-04-10 14:02:31

+0

@Tomolak,我明白你的意思了!无论如何感谢您的答案。 – 2013-04-10 14:10:26

相关问题