我有一個同位素佈局,其中有一個過濾器對網格項進行排序;並且按項目排序時,網格中不在選定數據類別中的項目將其CSS透明度更改爲.25。jQuery同位素過濾:當網格中的數據類別中沒有項目時添加一個類
問題是當網格完成時 - 無論是在初始頁面加載還是在排序按鈕操作的「arrangeComplete」之後 - 都有某些數據類別在網格中沒有項目。這意味着某些排序按鈕仍然可以點擊,即使它們沒有排序,因爲它們在網格中沒有任何項目。
我想給這些按鈕添加一個類,並且「按下」按鈕以使它們不是活動鏈接。
Codepen:http://codepen.io/anon/pen/WooJom
即:在所有的按鈕,紅色,綠色,藍色,白色都有項目和排序;按鈕橙色和灰色沒有項目,所以我想添加一個類給他們,並「declick」他們。
我
1)怎麼能算在網格中的項目,
2)尋找是否有爲零的項目,如果是
3)添加一個類按鈕(s)以便按鈕的不透明度爲 .25,並且
4)按鈕也被刪除,因此它們不是活動鏈接?
在哪裏以及如何添加到此功能來做到這一點?
var selectedCategory;
var $grid = $('.isotope-list').isotope({
itemSelector: '.grid-item',
masonry: {
columnWidth: 160,
gutter: 20
},
getSortData: {
selectedCategory: function(itemElem) {
return $(itemElem).hasClass(selectedCategory) ? 0 : 1;
}
}
});
var $items = $('.row').find('.grid-item');
$('.sort-button-group').on('click', '.button', function() {
// set selectedCategory
selectedCategory = $(this).attr('data-category');
if (selectedCategory == 'all') {
$grid.isotope({
sortBy: 'original-order'
});
// restore all items to full opacity
$items.css({
opacity: 1
});
return;
}
// change opacity for selected/unselected items
var selectedClass = '.' + selectedCategory;
$items.filter(selectedClass).css({
opacity: 1
});
$items.not(selectedClass).css({
opacity: 0.25
});
// update sort data now that selectedCategory has changed
$grid.isotope('updateSortData');
$grid.isotope({ sortBy: 'selectedCategory' });
});
// change is-checked class on buttons
$('.button-group').each(function(i, buttonGroup) {
var $buttonGroup = $(buttonGroup);
$buttonGroup.on('click', 'button', function() {
$buttonGroup.find('.is-checked').removeClass('is-checked');
$(this).addClass('is-checked');
});
});
按鈕的HTML;我需要一個類添加到這些按鈕:
<div class="button-container">
<div class="button-group sort-button-group">
<button class="button is-checked" data-category="all">all</button>
<button class="button" data-category="red">red</button>
<button class="button" data-category="green">green</button>
<button class="button" data-category="blue">blue</button>
<button class="button" data-category="white">white</button>
<button class="button" data-category="orange">orange</button>
<button class="button" data-category="gray">gray</button>
</div></div>
謝謝!完美的工作,你的代碼對我來說很有意義,儘管我是一個初級的同位素。 – BlueDogRanch