我在想,如果我真的有寫:淡入/淡出根據布爾
if (status) {
$('#status-image-' + id).fadeIn();
} else {
$('#status-image-' + id).fadeOut();
}
或有一個功能,我可以提供我的布爾狀態,是這樣的:
$('#status-image-' + id).fade(status);
我見過fadeToggle,但它不接受布爾狀態參數。
我在想,如果我真的有寫:淡入/淡出根據布爾
if (status) {
$('#status-image-' + id).fadeIn();
} else {
$('#status-image-' + id).fadeOut();
}
或有一個功能,我可以提供我的布爾狀態,是這樣的:
$('#status-image-' + id).fade(status);
我見過fadeToggle,但它不接受布爾狀態參數。
沒有,沒有,但你可以做一個這樣的:
jQuery.fn.fadeInOrOut = function(status){
return status ? this.fadeIn() : this.fadeOut();
}
,然後調用它這樣(見this jsfiddle的證明):
$('#status-image-' + id).fadeInOrOut(status);
難道你通緝?
我知道寫這個的捷徑,但一個我覺得個人可惡的,是這樣的:
$('#status-image-' + id)[status ? 'fadeIn' : 'fadeOut']();
當然,你可以再補充建議的功能直接將jQuery:
(function($) {
$.fn.fade = function() {
var args = Array.prototype.slice.call(arguments);
var status = args.shift();
var func = status ? 'fadeIn' : 'fadeOut';
return $.fn[func].apply(this, args);
};
})(jQuery);
這是未經測試 - 我只是當場撞上了它。
提供的第一個參數將是您的status
參數 - 其餘參數將傳遞到.fadeIn()
或.fadeOut()
。
不錯,謝謝。你知道一個jsfiddle是否永遠存在,否則它會在某個時候被刪除? – stivlo
@stivlo:沒問題。我不知道任何已被刪除的jsfiddle。你可能會問jsfiddle的開發者,它是否會永久保留,但它們非常可靠,所以我認爲它會保持相當長的一段時間。 – Tadeck