您可以使用逗号运算符执行此操作:
this.className === "unclickedButton" ?
(this.className = ($("#alert").style.display="block", "clickedButton")) :
(this.className = ($("#alert").style.display="none", "unclickedButton"));
...但它不会说它使代码可读。我会使用普通的if
.
这是一个使用 jQuery ( source ) 的实时示例。(我使用and ,见下文)。但严肃地说,将可维护性/可读性与以下内容进行比较:show
hide
if (this.className === "unclickedButton") {
this.className = "clickedButton";
$("#alert").style.display = "block";
}
else {
this.className = "unclickedButton";
$("#alert").style.display = "none";
}
我知道我宁愿对哪一个进行维护。或者,如果你想要一个单行,稍微改变 CSS,这样你就有一个button
类和一个添加clicked
到它的类,然后这样做(我在这里假设 jQuery):
$("#alert").toggle($(this).toggleClass('clicked').hasClass('clicked'));
实例| 资源
旁注:您使用的选择器看起来像您在 jQuery 中使用的选择器,但 jQuery 实例没有style
属性。如果您使用 Prototype 或 MooTools,您可能希望#
删除alert
. 如果您使用的是 jQuery,请使用它的show
andhide
方法(可能还有addClass
/ removeClass
)。