您可以做到這一點,利用comma operator:
this.className === "unclickedButton" ?
(this.className = ($("#alert").style.display="block", "clickedButton")) :
(this.className = ($("#alert").style.display="none", "unclickedButton"));
...但它沒有透露它使可讀碼。我會使用正常的if
。
這是使用jQuery(source)的live example。 (我使用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'));
Live Example | Source
旁註:你正在使用的樣子你會用jQuery幹什麼用的,但jQuery的情況下,沒有一個style
屬性的選擇。如果您使用Prototype或MooTools,則可能需要刪除alert
前面的#
。如果您使用jQuery,請使用其show
和hide
方法(並且可能使用addClass
/removeClass
)。
爲什麼你就不能使用普通的'if'聲明? –