jQueryでイベントが発火しない場合の対応

jQueryでイベントが発火しない場合の対応

久しぶりにjqueryを修正する案件があったのですが、少しハマったというか忘れていたことがあったのでメモしてます。

発火しない原因

動的に追加された要素だったことが原因。

対処法

単純に、発火されなかった下記のコードを

$(function(){
    $('クリックする要素').click(function(){ /* 処理内容 */ });
});

次のように変更すれば、 ルートノード(document)にイベント定義すれば問題は解消

$(function()){
    $(document).on('click', 'クリックさせる要素', function(){ /* 処理内容 */ });
});