3

タイムアウトを使用せずに、jQueryを使用して、間もなく生成されるビデオタグをチェックしたいと思います。ビデオタグを探している時点では、まだ存在していません。

window.loadを使用して、ウィンドウ全体がロードされるのを待ってから、コールバック関数を呼び出すことができます。

window.load = function () {player = jQuery("#videoid"; }

しかし、その特定のビデオタグが本文に挿入/ロードされてからコールバック関数を実行するまで「待機」する方法はありますか?何かのようなもの:

jQuery("#videoid").bind('load', function() { player = jQuery("#videoid"); })

前もって感謝します

4

1 に答える 1

10

要素のイベントへのバインドを委任してDOMNodeInserted、要素が挿入されたときにイベントハンドラーが実行されるようにすることができます。これはIE8以前では機能しませんが、<video>タグも機能しません。

jQuery(document).delegate('video', 'DOMNodeInserted', function () {
    alert('Wana watch a video?');
});

$(<root element>).on(<event>, <selector>, <event handler>)と同じであることに注意してください$(<root element>).delegate(<selector>, <event>, <event handler>)

これがデモです:http://jsfiddle.net/vW4Pg/

アップデート

このアイデアの実装に興味がある場合は、https ://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_eventsをご覧ください。

コメント@JFKをありがとう。

于 2012-03-14T18:22:59.417 に答える