ミソは引数 jqueryクリックイベントで子要素は反応させたくない時のやり方!
jqueryでクリックイベントを使うときに、
セレクタで指定した要素のイベントなら.clickで簡単だけど、
セレクタの子要素のクリックは反応させたくない場合の処理。
ミソはコールバック関数に引数を渡して、クリックした要素を取得して
そのタグネームで処理を分岐してやるとできる。
【事例】
テーブルのチェックボックスで
チェックボックスが存在するtdタグをクリックしたときに、
その子要素のチェックを入れる⇔外す
の処理をする。
>|html|
<tr>
<td class="dbcArea">
<input type="checkbox" />
</td>
</tr>
$(".dbcArea").click(function(e){
// クリックしたのが、 TDタグかどうかのタグネームで分岐
if(e.target.tagName == 'TD'){
var bool = $(this).find("input[type=checkbox]").attr("checked");
if(bool){
bool = false;
}else{
bool = true;
}
var bool = $(this).find("input[type=checkbox]").attr("checked", bool);
}
});
||<
引数ってあんまり使わないから、盲点だったわー
ぐぅ。