2

特定の CSS クラスを持つ要素を検出したときにボタンに CSS 属性を追加する JQuery を作成しました (この場合、検証 div がページに表示されたとき)。

  <script>
        $(document).bind('DOMSubtreeModified', function () 
        {
            if ($('.errors').length)
            {
            alert('test');
            }
        });
    </script>

アラートはすべてのブラウザー (IE8 および 9 を含む) で表示されますが、IE7 では表示されません。これは既知の問題ですか? 使用できる代替手段を知っている人はいますか?

編集: IE7 が ' ' を実行できないことを発見しDOMSubtreeModifiedました。代替手段があることがわかりますが、javascript を自動的に呼び出して変更が発生したことを検出する必要があり、関数の呼び出しを使用して実行する必要はありません。助言がありますか?

別の編集: .NET MVC Web サイトであるため、検証バインディングに JavaScript 呼び出しを追加する方法がわかりません。JavaScript がページ全体の変更を検出する方法はありますか? つまり、上記のコードと同じことができる JavaScript コードですか?

4

1 に答える 1

1

検証エラーが発生したときにのみ呼び出される場合は、なぜDOMSubtreeModifiedなどの広範なイベントを使用するのでしょうか。次のようなカスタムイベントを使用します。

function validate() { 
  var error = false;
  //....
  //your validation code that finds an error
  if(error) {
    $(document).trigger('validationError');
  }
  //.....
}


$(document).on('validationError',function() {
   //your code that does something when an error is found
});
于 2012-09-26T14:47:21.777 に答える