エンジニア的な技術的なブログ

webエンジニアの開発の知見を書きます。PHP、javascript、postgres、mysql、あと多少のインフラ周りとか。

ミソは引数 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);

}

 

});

 

||<

 

 

引数ってあんまり使わないから、盲点だったわー

ぐぅ。