jQueryでクリックイベントが発火しない。動的な要素でもない場合の対処方法

jqueryのクリックイベントが発火しない。

エラーもないし

へんだなぁ

おっかしーなぁー

こわいなぁー

↑の問題を解決していきます。

スポンサーリンク

動的に追加されるボタンの場合

よくある情報としては動的に追加されるボタンはクリックイベントが発火しないというやつです↓

$('.btn').click(function () {
  alert(アラート);
});

↓このようにすることで解決できます

$(document).on('click','.btn',function () {
  alert(アラート);
});
スポンサーリンク

静的なボタンのクリックイベントが発火しない

今回の問題は静的なボタンのクリックイベントが発火しないのが問題です。

$("#btn-comment-post").click(function() {
  $("html, body").animate({ scrollTop: $("#comment").offset().top }, "slow");
});

別に何の問題もないコードですけどねー。へんだなぁー。

↓次のようにします。

$(function() {
    $("#btn-comment-post").click(function() {
        $("html, body").animate({
            scrollTop: $("#comment-area").offset().top + $("#comment").position().top
        }, "slow");
    });
});

ちゃんとページの読み込み時に実行されるようにしてください。または↓

$(document).ready(function() {
  $("#btn-comment-post").click(function() {
    $("html, body").animate({ scrollTop: $("#comment-area").offset().top + $("#comment").position().top }, "slow");
  });
});

まとめ

ページの読み込み時に実行するようにしてください

コメント

タイトルとURLをコピーしました