JavaScriptを書くときに、ページがロードされるときにイベントが割り当てられる一連のインターフェースボタンがあります。私の問題は、動的に作成されたものは、これらのイベントを受け取らないことです。ページがロードされた後のJavascriptの処理イベント
たとえば、私はURLチェッカーを作っています。他のドメインに移動するリンクが、ユーザーに離脱したことを知らせるexitインターフェイスを提供することを確認することです。ページがロードされた後に作成されたリンク、ページがロードされたときに存在していたものとして自然にそのイベントを持っていないものなど、ajaxを投稿します。
実際に、新しく作成されたアイテムがこれらの種類のグローバルイベントを確実に取得する最良の方法は何ですか?
私はjQueryを使いたいですが、これは本当に概念的な質問です。
グローバルリンクエフェクトを再適用する関数を作成する必要がありますか、またはそれを少しずつ行う以外にもスマートな方法はありますか?
を、誰がどのように知っています.live()は動作しますか?それはタイムアウトか、実際のDOMイベントですか?また、hrefが一連の要件を満たす場合など、より複雑なフィルタも処理できますか? (httpなどで始まる) –
@Bob:[jQueryのドキュメント](http://api.jquery.com/live/#event-delegation)から:* .live()メソッドは、イベント委譲を使用してDOMに追加されました。祖先要素にバインドされたハンドラは、その子孫でトリガされるイベントを処理します。渡されたハンドラ。live()は要素にバインドされません。 .live()は特別なハンドラをDOMツリーのルートにバインドします* - それは 'delegate()'のようですが、DOMのルートで動作しますので、 'delegate()'](http://api.jquery.com/delegate/)。 – treeface
@Bob:セレクタを使って "http"で始まる属性だけを選択する限り、jQueryの[セレクタで始まる属性](http://api.jquery.com/attribute-starts-with-selector/)を参照してください。あなたのケースでは、あなたは '$( 'a [href^=" http "')。live(...)' – treeface