我是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