是您遇到的問題是,你試圖把一個鏈接中選擇選項。這是行不通的。
這裏,你將需要一個解決方案:
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>
太感謝你了! –