Vous peut ce faire, en utilisant le comma operator:
this.className === "unclickedButton" ?
(this.className = ($("#alert").style.display="block", "clickedButton")) :
(this.className = ($("#alert").style.display="none", "unclickedButton"));
... mais ce ne serait pas le dire fait pour lisible code. J'utiliserais un if
normal. Voici un live example utilisant jQuery (source). (J'ai utilisé show
et hide
, voir ci-dessous). Mais sérieusement, comparez cela pour la maintenabilité/lisibilité à:
if (this.className === "unclickedButton") {
this.className = "clickedButton";
$("#alert").style.display = "block";
}
else {
this.className = "unclickedButton";
$("#alert").style.display = "none";
}
Je sais lequel je préfère faire la maintenance. Ou si vous voulez un one-liner, changer le CSS légèrement de sorte que vous avez une classe button
et une classe clicked
vous ajouter à, et faire cela (je suppose jQuery ici):
$("#alert").toggle($(this).toggleClass('clicked').hasClass('clicked'));
Live Example | Source
Side note: Les sélecteurs que vous utilisez ressembler à ce que vous souhaitez utiliser avec jQuery, mais les instances ne jQuery pas une propriété style
. Si vous utilisez Prototype ou MooTools, vous voulez probablement supprimer le #
devant alert
. Si vous utilisez jQuery, utilisez ses méthodes show
et hide
(et probablement addClass
/removeClass
).
Pourquoi ne pouvez-vous utiliser simplement une instruction régulière 'if'? –