是您遇到的问题是,你试图把一个链接中选择选项。这是行不通的。
这里,你将需要一个解决方案:
JS
var Portfolio = {
sort: function(items) {
items.show();
$('#portfolio-content').find('div.portfolio-item').not(items).fadeOut(300);
},
showAll: function(items) {
items.fadeIn(300);
},
doSort: function() {
$('#portfolio-select').on('change', function() {
var val = $(this).find(':selected').data('cat')
if (val != undefined) { // it will be `undefined` for `all` because there is no `data-cat` on that object
var items = $('div[data-cat=' + val + ']', '#portfolio-content');
Portfolio.sort(items);
} else {
Portfolio.showAll($('div.portfolio-item', '#portfolio-content'));
}
});
}
};
Portfolio.doSort();
HTML
<div id="portfolio">
<div id="portfolio-sort">
<select id="portfolio-select">
<option id="all">ALL</option>
<option data-cat="a">A</option>
<option data-cat="b">B</option>
<option data-cat="c">C</option>
</select>
</div>
<div id="portfolio-content">
<div class="portfolio-item" data-cat="a">A</div>
<div class="portfolio-item" data-cat="b">B</div>
<div class="portfolio-item" data-cat="c">C</div>
<div class="portfolio-item" data-cat="c">C</div>
<div class="portfolio-item" data-cat="b">B</div>
<div class="portfolio-item" data-cat="a">A</div>
<div class="portfolio-item" data-cat="a">A</div>
<div class="portfolio-item" data-cat="c">C</div>
<div class="portfolio-item" data-cat="b">B</div>
</div>
太感谢你了! –