0

重複の可能性:
jQuery で新しい要素の作成を検出する方法は?

ボタンのテキスト値を置き換えようとしていますが、ページの読み込み時にボタンが存在せず、他のいくつかのユーザー選択が行われた後に表示されます。

ボタンがページに表示されるとすぐにボタンのテキストを置き換えようとしています-クリックまたはホバーなどに基づいていません。

ボタンがオンロードに存在する場合、javascript を使用して問題なく値を置き換えることができますが、jQuery でこれが可能かどうか、およびどの関数を使用するかを理解するのに苦労しています。

4

1 に答える 1

0

クロスブラウザーで機能する可能性のあるいくつかの解決策を考えることができます。

  1. ボタンがページに追加される原因となったユーザー イベントを特定し、そのイベントをフックして、そのイベントが実行された後に、ボタンを見つけてテキストを更新します。

  2. インターバル タイマーを使用してページをポーリングし、ボタンがいつページに追加されたかを調べます。

  3. ボタンが jQuery ajax 操作の後に追加され、その ajax の動作を実行したり、ボタンを追加したりする実際のコードを変更できない場合は、jQuery 操作をグローバルにフックし、任意の操作の完了後に短い setTimeout() でページをチェックできます。 jQuery ajax 操作。

jQuery.on()を使用して、オブジェクトがいつページに追加されたかを調べることはできません。 .on()親オブジェクト (ページに動的に追加されない) で伝播されたイベントをキャッチすることにより、将来ページに追加されるオブジェクトのイベント ハンドラーに対して機能しますが、オブジェクトがいつページに追加されるかは実際にはわかりません。

参考までに、一部のブラウザーには、この種の準備ができているように聞こえるDOMSubtreeModifiedandDOMNodeInsertedイベントがありますが、一部のブラウザーでのみ使用でき、非推奨です (使用は推奨されません)。

このタイプの通知の将来の方向性はMutation Eventsですが、これはまだあまり広くサポートされていません。

于 2012-09-24T16:03:01.837 に答える