備忘録

備忘録:jQueryで追加されたDOM要素にイベントを割り当てる

投稿日:2012年2月15日 更新日:

jQueryを多用して、WEBベースの管理システムを開発中です。

append等で、初期表示されたHTMLに要素を追加する際の注意点

Javascriptでは初期表示された際の各要素にはイベントが割り当てられますが
append等で追加された要素には何もしないとイベントが割り当てられないようです。
(使っている用語が間違っているかもしれませんが・・・)

動作させるには、jQueryのバージョンが1.3になって増えた新機能「live()」を使用します。

→live(type, fn) – jQuery 1.3.1 日本語リファレンス

ある管理画面で、
ajaxを利用して表示された検索結果から、入力フィールドを追加する機能を作っているのですが
追加された入力フィールドでdatepickerを使う必要がありました。

単純に

jQuery(function($){
	$(".classname").datepicker({
		dateFormat: 'yy-mm-dd'
	});
}

function hogehoge(){
	html = '<input type="text" class="classname" />';
	$('#hogehoge').append(html);
}

で追加した入力フィールドに、フォーカスインしても、datepickerが表示されません。

jQuery(function($){
	$(".classname").datepicker({
		dateFormat: 'yy-mm-dd'
	});
}

function hogehoge(){
	$('.datepicker').live('focusin',function(){
		$(".classname").datepicker({
			dateFormat: 'yy-mm-dd'
		});
	});
	html = '<input type="text" class="classname" />';
	$('#hogehoge').append(html);
}

これで動作します。

1行目から6行目で初期表示された入力フィールドにdatepickerを適用します。
7行目からが要素を追加する部分です。
8行目で追加された要素に”focusin”イベントを割り当てています。

忘れないように・・・

ad

ad

-備忘録
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スパム対策 * Time limit is exhausted. Please reload the CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

備忘録:Facebookページで「いいね」がクリックされているかどうかを判定

あけましておめでとうございます。 本年もよろしくお願いいたします。 昨年は様々なことが有りました。良いことも、悪いことも・・・今年は悪いことがないように願いたいものです。 さて、年末年始休暇中にFac …

WordPressのダッシュボードでJetpackのアクセス解析グラフが表示されない

サッカーワールドカップの組み合わせ抽選会速報なんて書いちゃいました。注目キーワードにあやかって さてさて、数日前にWordpressのプラグインのJetpackのバージョンアップをしたら管理画面のダッ …

no image

備忘録:jQueryのlive-clickがiPadで効かない

ちょっと忙しく、ブロクが更新できていませんが jQueryを利用してiPadでのウェブアプリケーションを開発中です。 そこで起こったちょっとした不具合 jQueryでlive:clickを使用した際に …

備忘録:prettyPopinで開くポップアップが元のページより縦長の場合

久々の更新です、ご無沙汰しています。 とある案件で、ポップアップウィンドウを多用する物があったので 昔から使っているprettyPopinを使用して開発を行なっています。 開かれたポップアップが元のペ …

Eclipse(IDE)のインストールについて

PHP関連の開発をメインに行なっていますが、 開発環境のEclipseのインストールについて簡単に手順を備忘録的に 1.Eclipseのダウンロード http://www.eclipse.org/do …