2

だから、基本的に私はそれがdomで作成された場合に要素で呼び出されたいプラグインを持っています、

たとえば、指定されたセレクターが呼び出されたセレクター内に作成された場合に関数を実行するdomWatchというプラグインがあるとします。

それで:

$('#container').domWatch('.mySelector', function(element){
    $(element).myPlugin();
});

$('#container').append($('<div />', {class: 'mySelector'})); //the new element should now have the myPlugin plugin called on it.

これは可能ですか?

4

5 に答える 5

6

私が開発したarrive.jsライブラリをまったく同じ目的で使用できます(内部でMutation Observersを使用します)。使用法:

$('#container').arrive('.mySelector', function(){
    $(this).myPlugin();
});
于 2014-03-31T19:51:58.923 に答える
3

この巧妙なハックを見てください:http ://www.backalleycoder.com/2012/04/25/i-want-a-damnodeinserted/ 。CSS3アニメーションを使用して、要素がDOMに挿入されたことを検出します。

「DOM要素が作成されたときにリッスンする」の問題はパフォーマンスへの影響であるため、問題を解決するために別のアプローチを検討する必要があります。

私はあなたの目標を達成するための多くの、はるかに簡単な方法があると確信しています。

于 2012-11-03T12:47:12.157 に答える
1

非常に最新のブラウザをターゲットにしている場合は、その目的のために設計されたMutationObserverをチェックすることしかできません。

https://developer.mozilla.org/en-US/docs/DOM/MutationObserver

于 2012-11-03T12:48:09.807 に答える
1

ライブクエリによく似ています。ただし、これにはパフォーマンスに影響を与える継続的なポーリングが含まれます。

ここにいくつかのデモがあります。

于 2012-11-03T12:41:27.260 に答える
0

イベントの委任された形式の.on()仕事のように見えます:

委任されたイベントには、後でドキュメントに追加される子孫要素からのイベントを処理できるという利点があります 。委任されたイベントハンドラーがアタッチされたときに存在することが保証されている要素を選択することにより、委任されたイベントを使用して、イベントハンドラーを頻繁にアタッチおよび削除する必要をなくすことができます。この要素は、たとえば、Model-View-Controllerデザインのビューのコンテナー要素であるdocument場合や、イベントハンドラーがドキュメント内のすべてのバブリングイベントを監視する場合に使用できます。この document要素は、他のHTMLをロードする前にドキュメントの先頭で使用できるため、ドキュメントの準備が整うのを待たずに、そこにイベントを添付しても安全です。

于 2013-01-08T09:42:22.117 に答える