初歩的なご質問で申し訳ないです。
動的に生成した要素に対してvarで変数宣言をして扱いたいのですが、
どのようにすればよいのでしょうか。第二引数にセレクタを記述するやり方はできたのですが、
クリックなどのイベントではなくページを読み込んだときに処理を実行する方法が知りたいです。
$(document).on("click", "#hoge", function(){ //処理 var xxx = $("#hoge"); xxx.addClass("foo"); });
(#hogeは動的に生成された要素です。)
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
MutationObserver
動的に追加されたノードを捕捉するには MutationObserver
を使用します。
DOMNodeInserted
DOMNodeInserted
は DOM Level 3 Events では非推奨なイベントとして存在しましたが、後継仕様の UI Events で廃止され、DOM Standard で MutationObserver
に置き換えられました。
- DOMNodeInserted - Document Object Model (DOM) Level 3 Events Specification
- UI Events (日本語訳)
- 3.3.1. Interface MutationObserver - DOM Standard
Re: obon_t さん
投稿2017/06/22 23:05
編集2017/06/22 23:09総合スコア18162
0
DOMNodeInserted を使って下さい。以下のコードは body 配下にクラス属性が myClass というノードが追加された場合に発火するイベントです。
javascript
1$('body').on('DOMNodeInserted', '.myClass', function(e) { 2 console.log(e.target); 3});
投稿2017/06/22 17:22
総合スコア5030
0
globalに変数を用意して、そこに入れるんじゃだめなのでしょうか?
他の関数からはグローバルが定義されているか、確認してから使えばよろしいかと。
javascript
1var gElement = null; 2 3$(function() { 4 $('#fuga').on("click", function(){ 5 if (!gElement) { 6 var ele = $("<div>"); 7 ele.addClass("foo"); 8 $('body').append(ele); 9 gElement = ele; 10 } 11 }); 12 $('#hoge').on("click", function(){ 13 if (gElement) { 14 gElement.css('background-color','#FF0000'); 15 } 16 }); 17}); 18```みたいな感じでしょうか?
投稿2017/06/23 01:26
編集2017/06/23 01:27総合スコア4437
0
おそらくやりたいことは下記のコードで実現できるのではと思います。
$(function(){ var xxx = $("#hoge"); xxx.addClass("foo"); })
色々な書き方があるのですが、上の書き方が一番コード量が少なくなるのでお薦めです。
http://qiita.com/8845musign/items/88a8c693c84ba63cea1d
ちなみにJavascriptやjQueryが出てきている場面で「動的に追加される要素」という語句をこのような場面で使うと、意図が伝わらない事がありますのでお気をつけください。
動的に追加される要素とは、ページを読み込み終わった後にさらに$.append()などで追加される要素を指すことが多いためです。
ページを読み込み終わる直後に操作できるものは「動的に追加される要素」とは呼ばないので一応注意してみてください
投稿2017/06/22 16:39
総合スコア888
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/22 16:49 編集
2017/06/22 17:00
2017/06/22 17:06
2017/06/22 17:12
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/23 08:18
2017/06/23 18:36
2017/06/23 23:31