如何简化这个javascript?

问题描述 投票:0回答:5
if (!errorHasHappened) {
    info.show();
    error.hide();
} else {
    info.hide();
    error.show();
}

我无法使用切换功能。

我尝试将函数 show 或 hide 传递给变量然后执行它,但由于某种原因它不起作用,并且出现了 JS 错误。

javascript
5个回答
7
投票

你可以这样做,但 if 语句更清晰。

为什么不使用专为这种情况设计的

.toggle
呢?

info[errorHasHappened ? 'hide' : 'show']();
error[errorHasHappened ? 'show' : 'hide']();

3
投票

你可以尝试这样的事情:

info[errorHasHappened?'hide':'show']();
error[errorHasHappened?'show':'hide']();

但这是我能想到的唯一选择,它可以使代码更短。

但是,这样的代码并不容易维护。


1
投票

如果您的目标是缩短代码:

errorHasHappened?(info.hide(),error.show()):(info.show(),error.hide());

顺便说一句,使代码更短

!==
简化代码。 IMO至少..


1
投票

任何有意义的事情就是改变它们以防止!

if (errorHasHappened) {
    info.hide();
    error.show();
} else {
    info.show();
    error.hide();
}

1
投票

另一种方式:

$( "#error" ).toggleClass( className, errorHasHappened);
$( "#info" ).toggleClass( className, errorHasHappened);
© www.soinside.com 2019 - 2024. All rights reserved.