我是jQuery的新手,需要一些過濾類的幫助。用戶可以從九個按鈕中進行選擇以選擇要顯示/隱藏的事件類型。單擊一種顏色,只顯示該顏色的事件,其餘隱藏。點擊「全部」,所有事件都不顯示。所有活動始於display:block
。jquery:隱藏/顯示基於變量的類名
實例的控制按鈕:
<li class="all" id="all-events"><a href="#" onclick="showEvents('event-all')">
<img src="swatch-all.png" alt="" /></a></li>
<li class="red" id="red-events"><a href="#" onclick="showEvents('event-red')">
<img src="swatch-red.png" alt="" /></a></li>
<li class="blue" id="blue-events"><a href="#" onclick="showEvents('event-blue')">
<img src="swatch-blue.png" alt="" /></a></li>
事件是從數據庫通過PHP拉,如下例所示:
<div id="bigCal">
<p class="all"><a href="http://foo.com" title="All event">All events</a></p>
<p class="blue"><a href="http://bar.com" title="Blue event">Blue event</a></p>
<p class="red"><a href="http://foobar.com" title="Red event">Red event</a></p>
</div>
我已經工作了jQuery兩天!不確定是否使用.filter
或.hasClass
或.is
。它沒有任何作用。我想最簡單的是:
function showEvents(color) {
($('p').hasClass(color)) ? this.style.display="block" : this.style.display="none";
}
說什麼也沒做的另一種嘗試是
function showEvents(color){
$("p[className*='event-']").css('display', 'none');
$("p[className=color]").css('display', 'block');
if ($("p[className='event-all']"))
$("p[className*='event-']").css('display', 'block');
}
任何幫助將不勝感激!
優秀!通過爲每種顏色(class =「all red」)添加「all」類,可以很容易地顯示所有顏色。這讓我完全陷入困境 - 如何輕鬆地獲得所有其他類。謝謝!加上了解jsfiddle.net。多麼酷啊! – dac 2010-12-18 23:01:25
通過jQuery獲取onclick的代碼也非常有用。感謝您爲我測試它。做出了所有的改變,並且很容易在我的網站上實現它。 – dac 2010-12-18 23:19:07