悲しい時ー! ページロード後に生成されたDOM要素にJavaScriptで当てているはずのイベントが効かないときー!

jQuery
Photo by Ketut Subiyanto on Pexels.com
jQuery

タイトル回収からいきますと、「悲しい時」このネタを記憶している方はもう多くないのかと思われます。

そう、「いつもここから」というコンビ芸人のネタです。

それはさておき、やっぱり

ページロード後に生成されたDOM要素にJavaScriptで当てているはずのイベントが効かないときって悲しいですよね。

もっと悲しいのは、DOM要素がページロード後に生成された要素だからだという原因がわからずにスクリプトを見直したり時間を無駄にしてしまうことだ。

はい、今回はその原因によくある事象をピックアップします。

なぜ効かない?それは、ページロード後にjQueryで生成されたHTMLコードだから!

そうなんです!cssが適用されたあとにjQueryがコードを後出ししてくるから、スタイルが当たらないんでぇぇぇす!!

$('#button').on('click', function() {
//実行処理を記述
});

これが実行されない!

$('#button').on('click', function() {
  window.alert("クリックされました");
});

ってやってもやっぱりだめ!つまりはid=”button”で指定しているHTMLタグが、反応しない!

これを回避するハック的とも言える対処法はこちらです!

引数にセレクタを指定するとうまくいく

例えば指定したいボタンのセレクタが”id=”obj1″の場合・・・

$(document).on('click', '#obj1', function(){
alert("効いた!");
});

上のスクリプトと何が違うのでしょう?

それは、初期に対象にしているセレクタを$(document)にしていること。

これを指定していると、ページロード時に存在していないセレクタ(ここでは”#obj1″)でも、パラメータの方に指定していればjQueryの実行時に改めて探しにいってくれるようです。

これが、ユーザのボタンイベントなどによるEventListenerでない場合、つまりページロード後の、さらにjQueryのHTML生成後に自動実行したい、というときは、

$(window).on('load', '#obj1', function() {
・・・(処理内容)
});

このように記述する!

以上です!

Webサイト制作を依頼したい方へ

PRYTHM WORKS(プリズムワークス)は、東京都墨田区、東京スカイツリーのふもとにあるWebコンテンツ制作事務所です。

華々しいおしゃれなECサイトをはじめ、アンダーグラウンドな案件まで幅広くご依頼をいただき、どんな案件でも真心・丁寧・楽しくを理念に掲げて制作しております!

作りたいサービスはあるけど、まずは費用感が知りたい!という方も、まずはお問い合わせください!

mail@prytymworks.tokyo

PRYTHM WORKSが手掛ける仕事の一部をご紹介します。

制作のご依頼者様用 費用かんたんお見積もりフォーム

おそらく本記事を読まれるのは、制作の現場の、法人またはフリーの、プロデューサーの方、ディレクターの方、エンジニアの方がほとんどかと存じます。
いつもおつかれさまです!そして本記事をお読みいただきありがとうございます。
紹介した記事の内容について、またはその他制作のご依頼について、以下のフォームより簡易お見積もりができます!
試算だけならフォーム送信しなくてもできますので、ぜひ試しにいかがでしょう?

お仕事をご希望の制作者様用 お問合せフォーム

また、まずはライトなご相談から…ということであれば、こちらのコンタクトフォームからお気軽にどうぞ!ご縁を大切にしてご返信いたします!

    ShopifyでのECサイト制作を行うならPRYTHMWORKS(プリズムワークス)へ

    ShopifyでのECサイト制作を外注しようとお考えの方は、PRYTHMWORKS(プリズムワークス)にご依頼ください。高品質なWebサイト制作で、お客様のビジネス成長を支援する会社です。Shopifyを使ったECサイト制作に力を入れており、売上向上に貢献するECサイト構築を代行いたします。豊富な経験と実績にもとづき、お客様のニーズに最適なECサイトを構築しますので、費用相場や制作事例など、気になることがございましたらお気軽にお問い合わせください。移行のご相談も承っております。

    社名合同会社PRYTHMWORKS
    事業内容EC/Webサイトの構築、管理保守
    CEO吉川直人
    法人事務所所在地〒150-0001
    東京都渋谷区神宮前六丁目23番4号桑野ビル2階
    設立日2023年(令和5年)7月3日
    沿革2020年(令和2年)10月
    個人事業主PRYTHMWORKS事業開始
    2023年(令和5年)7月
    合同会社PRYTHMWORKS設立

    会社に関するご連絡は以下よりお願いいたします。

    mail@prytymworks.tokyo


    お問い合わせ用LINEはこちらからどうぞ!

    お問い合わせ用LINEはこちらからどうぞ!

    LINE

    GoogleMeetの相談予約が可能になりました!

    以下の空いている日からサクッとGoogleMeet(ビデオ通話)の予約をどうぞ!