我正在製作一個基於各種過濾器組合顯示結果的工作列表頁面。當沒有一組過濾器的結果時,我想要顯示「不匹配」消息,並且我想通過基於作業列表元素的可見性的click
函數來顯示/隱藏p
元素。每份工作清單都包含在li.requisition-item
;我試圖以兩種不同的方式測試基於其他SO線程的可視性。這是我迄今:jQuery:根據元素可見性顯示/隱藏警報
$(".requisition-filter a").on("click", function() {
if ($('.requisition-item').is(":visible").length == 0 || $('.requisition-item').css('display') == 'none') {
$('p.no-results').show();
console.log('show alert');
}
else if ($('.requisition-item').is(":visible").length || $('.requisition-item').css('display') == 'block') {
$('p.no-results').hide();
console.log('hide alert');
}
else {
$('p.no-results').hide();
}
});
因此,我有一個段落元素與類no-results
應該表明基於這些條件/隱藏,但如預期的腳本不行爲。警報將(有時)正確顯示,但當過濾器再次顯示清單時,不會適當地「重新隱藏」。任何想法這裏有什麼問題?
有點離題,但你的網站是美麗的。我喜歡設計 – Chax
'.is(「:visible」)'返回一個布爾值,無論是true還是false,它沒有長度 – adeneo
@adeneo是正確的,也許你應該用.filter替換.is然後使用.length – KiiroSora09