2011-10-23 3 views
0

jQueryには、要素が表示されるとすぐにイベントをサスペンドする関数live()があることがわかりました。私は要素が出現するとすぐに何かをしたいと思っています。私は "load"イベントに要素を追加しようとしましたが、動作しません。それについてどうやって行くの?要素がjQueryに表示されるとすぐに関数を適用する方法は?

+1

を参照してくださいこの質問を: http://stackoverflow.com/questions/3840149/jquery-live-event-for-added-dom-elements –

答えて

1

livequeryあなたは要素を作成し、追加のコードをコントロールしている場合、あなたは可能性triggerカスタムイベントを考慮して扱いますそれは後でハンドラに入れます。

Example

$('#add').click(function() { 
    $('#container').append($('<div>Hello! I am a new div</div>')).trigger('div-added'); 
}); 

$('#container').bind('div-added', function() { 
    alert('A div has been added'); 
}); 
1

すべての要素にloadを使用することはできません。のみ:Img Body Iframe。

あなたは私が言及したもの以外の要素の読み込みイベントにライブで聞くことはできません。

あなたができること - ページに追加するときです - それが起こったときを知ってから、あなたのfuncを呼び出すことができます。

0

あなたはDOMNodeInsertedを聞くことができます。私はWebkitとFirefoxで動作することを知っています - 私はIEについてよく分かりません。

それは次のようになります。

$('body').bind('DOMNodeInserted', function(evt) { 
    var addedElement = evt.target; 
    // do whatever with `addedElement`... 
}) 
+0

DOMNodeInsertedと他のDOM突然変異イベントは、DOM3では廃止されました。http://www.w3.org/TR/DOM-Level-3-Events/#events-mutationeventsを参照してください。 –

関連する問題