2009-05-22 7 views
1

ページロード時にサーバーから送信され、AJAX経由で頻繁に更新されるウェブページにコンテンツがあります。最初にロードされるとき、私は$(function(){})を使ってサーバーからのニュースに基づいてバインディングと更新を行います。特に、クリックイベントを再バインドし、サーバーからのニュースで更新するために、コードを再作成したときにコードを実行できるようにしたいと考えています。ページのHTMLに追加するときにjavascriptを実行する

$ .getScript separatleyを実行しないとこれを行う方法はありますか?私は、AJAX($( 'el').html(...))を使って画面にデータを取り込むときにJavascriptを実行する方法をやや混乱させています。誰でもこの仕組みを解明できますか?

答えて

2

liveを使用して、新しく追加されたDOMノード(Ajaxなど)でイベントをバインドします。

含まれているスクリプトは、それらをDOMに追加すると実行されます。

これはexampleを参照してください。

+0

$ .live()は何も再バインドしていません。インスタンス化すると一度だけバインドするグローバルウィンドウリスナーです。 – duckyflip

+0

私はあなたがその問題の「再」部分を取っているのかどうかはわかりませんが、彼が求めているのは、イベントを必要とする要素にイベントをバインドすることです。 "再"バインドが不正確なので、私はそれを取り除きます。 – cgp

2

jQueryイベントでは、イベントを新しい要素に適用する場合は、.live()メソッドを使用します。

しかし、jQuery 1.3では、イベントをブラー、フォーカス、マウスイベント、マウス放置、変更、およびサブミットすることはできません。 roadmapのjQuery 1.4の場合)

.live()でサポートされていないイベントにバインドする場合は、liveQueryプラグインを使用できます。

関連する問題