次の 3 つのクラスがあるとします。
.unselected { background-color: grey; }
.selected { background-color: green; }
.clicked { background-color: red; }
その後、次のように使用できます。
<div id="test" class="unselected">test<div>
次に (document.ready または test 要素の後の script ブロック内):
$("#test").click(function() {
var $this = $(this);
if ($this.hasClass("selected")) {
$this.removeClass("selected").addClass("clicked");
// ajax here if needed
} else if ($this.hasClass("clicked")) {
$this.removeClass("clicked").addClass("selected");
// ajax here if needed
} else if ($this.hasClass("unselected")) {
$this.removeClass("unselected").addClass("selected");
// ajax here if needed
}
});
デモ: http://jsfiddle.net/LLCMa/
上記は自明のはずです。もちろん、より適切な場合は Ajax 呼び出しを if/else 構造の外に置くこともできますが、現在の状態に応じて異なる Ajax 呼び出しを行う必要がある場合は、上記のようにします。