例えば、AとBボタンがあってAボタンをクリックしたらBボタンをクリックできないようにしたい・・といった場面に遭遇したのでその対策をメモ。
Aボタン
Bボタン
hasClassでクリックした要素をチェックする
さくっと説明すると、クリックした時に、予め設定したクラス(上記の場合だとaとb)をif文とhasClassでチェックしてクリックした要素に対してaddClassで「disabled」のクラスを設定し,他のpタグに「disabled」を設定した場合はremoveClassで「desabled」を削除する
クリックイベントの最初の処理として「desabled」クラスを持っていた場合は「return」でクリックイベントを終了させる
$("p").click(function(){
if($(this).hasClass("disabled")){
return false;
}
if($(this).hasClass("a")){
//
$(this).siblings("p").removeClass("disabled");
$(this).addClass("disabled");
//
}else if($(this).hasClass("b")){
//
$(this).siblings("p").removeClass("disabled");
$(this).addClass("disabled");
}
});