2013-04-10 85 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

相關問題