【发布时间】:2015-07-18 11:20:16
【问题描述】:
我编写了一个 jQuery 切换函数,如下所示:
// category filter
$.fn.clickToggle = function(a, b) {
var ab = [b, a];
function cb(){ ab[this._tog^=1].call(this); }
return this.on('click', cb);
};
$.fn.swapClass = function(oldClass, newClass) {
return $(this).removeClass(oldClass)
.addClass(newClass)
.fadeIn('fast');
};
$('.category-filter').clickToggle(function() {
// clear old
$('.category-filter').each(function() {
$(this).fadeTo('fast', 1.0);
$(this).swapClass('label-success', 'label-default');
})
// get new
var category = $(this).attr('data-category');
$(this).swapClass('label-default', 'label-success');
// apply new
$('.category-filter').each(function() {
if (!($(this).attr('data-category').indexOf(category) >= 0)) {
$(this).fadeTo('fast', 0.5);
}
})
$('.article_container').each(function() {
if ($(this).attr('data-categories').indexOf(category) >= 0) {
$(this).fadeIn('fast');
} else {
$(this).fadeOut('fast');
}
})
}, function() {
$(this).swapClass('label-success', 'label-default');
$('.article_container').each(function() { $(this).fadeIn('fast') })
$('.category-filter').each(function() { $(this).fadeTo('fast', 1.0) })
});
它可以正常工作 - 请参阅 JSFiddle here - 但在单击一个链接然后“跳过”以单击另一个链接后,切换似乎会中断。
我的功能有什么问题?如何更改它以切换用户是再次单击同一链接还是下一次单击另一个链接?
【问题讨论】:
标签: javascript jquery