9

ページ/ドキュメントが変更されたときに JQuery を実行する必要があります。この場合は、特定の CSS クラスを持つ div が表示されたときに実行されます。

次の JQuery コードがあります。

   <script>
           $(document).change(function () {
               if ($('.validation_errors').length) {
                   alert("test");
               }
           }
    </script>

ただし、アラートは実行および表示されません。ここで何か不足していますか?

4

3 に答える 3

25

変更は、input、textarea、または select 要素のみです。DOMSubtreeModified代わりに、関数をミューテーション イベントにバインドする必要があります。

$(document).bind('DOMSubtreeModified', function () {
   if ($('.validation_errors').length) {
       alert("test");
   }
});

編集: ターゲット ブラウザーがサポートしている場合は、代わりにMutationObserverを使用する必要があります。

于 2012-09-19T13:00:23.487 に答える
2

このままではDOMの変化を監視できません。jQuery ドキュメントからの引用:

change イベントは、値が変更されたときに要素に送信されます。このイベントは、要素、ボックス、および要素に限定されます。- http://api.jquery.com/change/

DOM の変更があるときにコードを実行する場合は、DOM をチェックするように設定して間隔を空けるか、jQuery フォーラムの投稿者が提供するこの手法を使用する必要があります。

イベントはありDOMSubtreeModifiedますが、現在のブラウザではほとんど利用できないため、個人的には使用をお勧めしません。その詳細については、このスタックオーバーフローの回答を参照してください

于 2012-09-19T13:04:04.093 に答える
0

あなたの構文も間違っています!それを行う場合は、ドキュメントの準備が整った状態で行ってください。.change は非常に制限されており、新しいページでは起動しません。

$(document).ready(function(){
    if($('.classOrId').length){
        //do something if it exists
    };
});
于 2012-09-19T12:59:38.870 に答える