您可以使用逗号运算符执行此操作:
this.className === "unclickedButton" ?
(this.className = ($("#alert").style.display="block", "clickedButton")) :
(this.className = ($("#alert").style.display="none", "unclickedButton"));
...但它不会说它使代码可读。我会使用普通的if.
这是一个使用 jQuery ( source ) 的实时示例。(我使用and ,见下文)。但严肃地说,将可维护性/可读性与以下内容进行比较:showhide
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,请使用它的showandhide方法(可能还有addClass/ removeClass)。