Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于布尔值的淡入淡出/淡出_Javascript_Jquery - Fatal编程技术网

Javascript 基于布尔值的淡入淡出/淡出

Javascript 基于布尔值的淡入淡出/淡出,javascript,jquery,Javascript,Jquery,我想知道我是否真的要写: if (status) { $('#status-image-' + id).fadeIn(); } else { $('#status-image-' + id).fadeOut(); } 或者有一个我可以提供布尔状态的函数,类似于: $('#status-image-' + id).fade(status); 我见过fadeToggle,但它不接受布尔状态参数。我知道写这篇文章的最短方法,但我个人觉得很讨厌,是这样的: $('#status-im

我想知道我是否真的要写:

if (status) {
    $('#status-image-' + id).fadeIn();
} else {
    $('#status-image-' + id).fadeOut();
}
或者有一个我可以提供布尔状态的函数,类似于:

$('#status-image-' + id).fade(status);

我见过fadeToggle,但它不接受布尔状态参数。

我知道写这篇文章的最短方法,但我个人觉得很讨厌,是这样的:

$('#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);
这是未经测试的-我只是当场完成了


提供的第一个参数是您的
状态
参数-其余参数将传递到
.fadeIn()
.fadeOut()

不,没有,但您可以这样做:

jQuery.fn.fadeInOrOut = function(status){
    return status ? this.fadeIn() : this.fadeOut();
}
然后这样称呼它(请参阅以获取证据):


这是你想要的吗?

不错,谢谢。你知道一个JSFIDLE是永远存在还是过一段时间就会被删除吗?@stivlo:没问题。我不知道有什么JSFIDLE被删除了。您可能会问jsfiddle的开发人员,它是否会永远存在,但他们非常可靠,所以我认为它会存在相当长的一段时间。
$('#status-image-' + id).fadeInOrOut(status);