![](/img/trans.png)
[英]jQuery – add class to every second item with same class then reset if interrupted
[英]Jquery: Add class to every second visible element
我正在嘗試創建一個動態投資組合庫,您可以通過單擊類別隱藏顯示項目。 除了在單擊類別時隱藏/顯示的元素添加類時,一切都有效。
我目前有:
$(document).ready(function() {
$('ul.filter a').click(function() {
$(this).css('outline','none');
$('ul.filter .current').removeClass('current');
$(this).parent().addClass('current');
var filterVal = $(this).text().toLowerCase().replace(' ','-');
if(filterVal == 'all') {
$('div.portfolio .hidden').fadeIn('slow').removeClass('hidden');
} else {
$('div.portfolio').each(function() {
if(!$(this).hasClass(filterVal)) {
$(this).fadeOut('normal').addClass('hidden');
} else {
$(this).fadeIn('slow').removeClass('hidden').addClass("show");
$('.portfolio:visible').each(function (i) {
if (i % 2 == 0) $(this).addClass("last"); // This is the part that doesn't seem to work
});
}
});
}
return false;
});
});
這部分代碼似乎有問題:
$('.portfolio:visible').each(function (i) {
if (i % 2 == 0) $(this).addClass("last"); // This is the part that doesn't seem to work
});
基本上,我希望將類.last添加到我的投資組合列表中的每一秒“可見”項目。
任何人?
CSS
/* -------------- Portfolio List ---------------- */
#portfolio-items {
font-size: 11px;
}
#portfolio-items ul, #portfolio-items li {
list-style:none;
}
#portfolio-items .portfolio {
float:left;
width:265px;
height:145px;
margin:0px 60px 50px 0px;
display:block;
}
#portfolio-items .portfolio .portfolio-client {
float:left;
font-size: 11px;
color: #666;
text-decoration: none;
}
#portfolio-items .portfolio.last {
margin-right:0px;
}
#portfolio-items .portfolio img {
border:solid 6px #fff;
-moz-box-shadow: 1px 1px 3px #999; /* Firefox */
-webkit-box-shadow: 1px 1px 3px #999; /* Safari, Chrome */
box-shadow: 1px 1px 3px #999; /* CSS3 */
margin: 0px 0px 5px;
transition: all .3s; /* in Safari, every animatable property triggers an animation in .2s */
-o-transition: all .3s; /* in Safari, every animatable property triggers an animation in .2s */
-webkit-transition: all .3s; /* in Safari, every animatable property triggers an animation in .2s */
-moz-transition: all .3s; /* in Safari, every animatable property triggers an animation in .2s */
transform-origin: centre; /* in Safari, the origin for transformation */
-o-transform-origin: centre; /* in Firefox, the origin for transformation */
-webkit-transform-origin: centre; /* in Safari, the origin for transformation */
-moz-transform-origin: centre; /* in Firefox, the origin for transformation */
}
#portfolio-items .portfolio img:hover {
-moz-box-shadow: 1px 1px 6px #999; /* Firefox */
-webkit-box-shadow: 1px 1px 6px #999; /* Safari, Chrome */
box-shadow: 1px 1px 6px #999; /* CSS3 */
transform: scale(1.05);
-o-transform: scale(1.05);
-webkit-transform: scale(1.05);
-moz-transform: scale(1.05);
box-shadow: 0px 0px 20px #ccc;
-o-box-shadow: 0px 0px 20px #ccc;
-webkit-box-shadow: 0px 0px 20px #ccc;
-moz-box-shadow: 0px 0px 20px #ccc;
}
.view-project {
background: url(/themes/cogo/default_site/images/view-project.png) no-repeat right center;
display: block;
float: right;
height: 14px;
width: 87px;
padding-right: 20px;
text-align: right;
}
HTML
<div id="portfolio-items">
<div class="portfolio first cms content-management e-commerce clothing kids shops toys">
<a href="http://ee.dev/portfolio/detail/be-my-bear">
<img src="/images/sized/themes/site_themes/cogo/images/uploads/bemybear-project-254x139.jpg" width="254" height="139" title="Be My Bear" />
</a>
<a href="http://ee.dev/clients/be-my-bear" class="portfolio-client">Be My Bear</a>
<a href="http://ee.dev/portfolio/detail/be-my-bear" class="view-project"><span>View Project</span></a></div>
<div class="portfolio last cms content-management business-services">
<a href="http://ee.dev/portfolio/detail/joloda">
<img src="/images/sized/themes/site_themes/cogo/images/uploads/joloda1-254x139.jpg" width="254" height="139" title="Joloda International Ltd" />
</a>
<a href="http://ee.dev/clients/joloda-international" class="portfolio-client">Joloda International</a>
<a href="http://ee.dev/portfolio/detail/joloda" class="view-project"><span>View Project</span></a></div>
<div class="portfolio first buddypress cms content-management wordpress business-services coaching events training">
<a href="http://ee.dev/portfolio/detail/nwwn">
<img src="/images/sized/themes/site_themes/cogo/images/uploads/nwwn-project-254x139.jpg" width="254" height="139" title="NWWN" />
</a>
<a href="http://ee.dev/clients/north-wales-womens-network" class="portfolio-client">North Wales Women’s Network</a>
<a href="http://ee.dev/portfolio/detail/nwwn" class="view-project"><span>View Project</span></a></div>
<div class="portfolio last e-commerce jewellery shops">
<a href="http://ee.dev/portfolio/detail/italian-world">
<img src="/images/sized/themes/site_themes/cogo/images/uploads/italianworld-254x139.jpg" width="254" height="139" title="Italian World" />
</a>
<a href="http://ee.dev/clients/italian-world" class="portfolio-client">Italian World</a>
<a href="http://ee.dev/portfolio/detail/italian-world" class="view-project"><span>View Project</span></a></div>
<div class="portfolio first cms content-management drupal designers printers">
<a href="http://ee.dev/portfolio/detail/mms-almac">
<img src="/images/sized/themes/site_themes/cogo/images/uploads/mms-project-254x139.jpg" width="254" height="139" title="MMS Almac" />
</a>
<a href="http://ee.dev/clients/mms-almac-ltd" class="portfolio-client">MMS Almac Ltd</a>
<a href="http://ee.dev/portfolio/detail/mms-almac" class="view-project"><span>View Project</span></a></div>
<div class="portfolio last cms content-management charity community training">
<a href="http://ee.dev/portfolio/detail/europe-direct">
<img src="/images/sized/themes/site_themes/cogo/images/uploads/europedirect-project-254x139.jpg" width="254" height="139" title="Europe Direct" />
</a>
<a href="http://ee.dev/clients/ectarc" class="portfolio-client">Ectarc</a>
<a href="http://ee.dev/portfolio/detail/europe-direct" class="view-project"><span>View Project</span></a></div>
</div>?
過濾菜單
<ul class="filter">
<li class="booking-systems"><a href="http://ee.dev/portfolio/category/booking-systems">Booking Systems</a></li>
<li class="buddypress"><a href="http://ee.dev/portfolio/category/buddypress">Buddypress</a></li>
<li class="cms"><a href="http://ee.dev/portfolio/category/cms">CMS</a></li>
<li class="content-management"><a href="http://ee.dev/portfolio/category/content-management">Content Management</a></li>
<li class="drupal"><a href="http://ee.dev/portfolio/category/drupal">Drupal</a></li>
<li class="e-commerce"><a href="http://ee.dev/portfolio/category/e-commerce">E-Commerce</a></li>
<li class="silverstripe"><a href="http://ee.dev/portfolio/category/silverstripe">Silverstripe</a></li>
<li class="wordpress"><a href="http://ee.dev/portfolio/category/wordpress">Wordpress</a></li>
</ul>
你需要使用:odd選擇器:
http://api.jquery.com/odd-selector/
不完全確定如何在你的代碼中實現它,但可能類似$('。portfolio:odd')甚至$('。portfolio:visible:odd')。 我會在一秒鍾內嘗試一下jsfiddle。
$("tr:even").addClass("even");
$("tr:odd").addClass("odd");
會給人一種“斑馬條紋”的效果。
那么只需稍作修改即可:
$("tr:visible:even").addClass("even");
$("tr:visible:odd").addClass("odd");
但是你每次隱藏/取消隱藏任何元素時都必須調用它。而且你也必須先刪除這些類..這樣的事情:
$("tr").removeClass("even").removeClass("odd");
$("tr:visible:even").addClass("even");
$("tr:visible:odd").addClass("odd");
而且我認為你應該很好!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.