人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

innerHTMLで挿入するhtmlにもjqueryを実行させたい。

あらかじめJavaScriptのソースに、

$(function() {
$('#divHoge').hoge();
});

を記述しておき、JavaScriptのinnerHTMLで

<div id="divHoge"></div>

を挿入した時にhoge()を実行させたいのですが、innerHTMLで普通に挿入すると実行されないようです。実行する方法はあるでしょうか?

●質問者: koime_ryokutya
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Cherenkov
<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>

jQuery.fn.extend({
hoge: function() {
return this.text('hoge')
}
});

$(function() {


$(document).on('DOMNodeInserted', '#divHoge', function() {
$(this).hoge()
});

/*
$('#divHoge').live('DOMNodeInserted', function() {
$(this).hoge()
})
 */

setTimeout(function() {
document.body.innerHTML = '<div id="divHoge">piyo</div>';
}, 1000);

});
</script>
 </head>
 <body>
 </body>
</html>

jQueryのbind/live/delegateの違いまとめ、と新API .on()の使い方 - y-kawazの日記


Cherenkovさんのコメント
live系でDOMNodeInsertedを待ち構えてるのは負荷が高いかもしれない。(よくわからん) 適当にinnerHTMLした後にsetTimeoutでhoge()する方がいいかも。

koime_ryokutyaさんのコメント
回答ありがとうございます。 おかげさまでうまくいきました! ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ