I was wondering if I really have to write:
if (status) {
$(\'#status-image-\' + id).fadeIn();
} else {
$(\'#status-image-\' + id).fadeOut();
}
The shortest way I know of to write this, but one I find personally abhorrent, is this:
$('#status-image-' + id)[status ? 'fadeIn' : 'fadeOut']();
You can of course just add the proposed function straight to 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);
This is untested - I just knocked it up on the spot.
The first argument supplied will be your status
parameter - the remaining arguments will be passed through to .fadeIn()
or .fadeOut()
.