如何简化这个JavaScript?

时间:2014-02-18 08:06:14

标签: javascript jquery

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

我无法使用切换。

我试图将函数show或hide传递给变量然后执行它,但由于某种原因它没有工作,我收到了JS错误。

5 个答案:

答案 0 :(得分:7)

你可以这样做,但如果陈述更清楚。

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

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

答案 1 :(得分:3)

您可以尝试这样的事情:

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

但这是我能想到的唯一选择,这会缩短代码。

这样的代码不会使维护更容易。

答案 2 :(得分:1)

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

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

BTW,缩短代码 !== 简化代码。 IMO至少......

答案 3 :(得分:1)

任何有意义的事情都是切换它们以防止!

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

答案 4 :(得分:1)

另一种方式:

$( "#error" ).toggleClass( className, errorHasHappened);
$( "#info" ).toggleClass( className, errorHasHappened);