静的なボタンとAjaxで生成されたボタンのクリックを正確に同じコードで処理できますか?私が尋ねる理由は、Ajaxボタンのためにクリックハンドラを動作させることはできませんが、同等の静的HTMLを記述すると、クリックが機能します。 "静的なHTML" では動的に生成される入力/ボタンのイベントハンドラをクリックしますか?
// in JS file:
$(function(){
$('input.sButton').click(function(){
var f = $.farbtastic('#picker');
f.linkTo(this);
return false;
});
});
:
このコードは、作業を行い、静的なバージョンです
<div id = "inputArea">
<label style="white-space: nowrap; line-height: 14px; height: 14px; vertical-align: bottom;">
<input id="sButton1" class="sButton" type="button" style="background-color: rgb(113, 16, 232);">
fubar1
</label>
</div>
通常の "ダイナミックHTMLは" 次のようになります。
<div id = "inputArea">
</div>
Ajaxコードはボタンを 'inputArea'に読み込みます。私はFirebugからこのコードの静的バージョンを得ました。私はAjaxルーチンを走らせ、サーバー出力を含むFirebugでHTMLビューを取得し、それを上に再現した静的テストコードにカットアンドペーストしました。言い換えれば、私は静的で動的なHTMLは同等であることを知っています。
しかし、静的コードは機能し、動的コードは機能しません。 Firebugは、静的バージョン用にJSクリックハンドラが入力されていることを示しています。遠隔地のカラーピッカーがポップアップしますが、これは動的コードでは発生しません。何か案は?
jQueryの '.live()'関数を見てください。 –
クリックアクションを割り当てる前に、ボタンをドキュメントに追加してもよろしいですか? –
Jquery 1.7以降を使用している場合は、.onメソッドを使用します。 1.7未満の場合は、.live()を使用してください。 – flynfish