2

我编写了 JQuery,它在检测到具有特定 CSS 类的元素时向按钮添加 CSS 属性:(在这种情况下,当页面上显示验证 div 时)

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

警报显示在每个浏览器(包括 IE8 和 9)中,但不是 IE7 - 这是一个已知问题吗?有谁知道可以使用的替代方案?

编辑:我发现 IE7 无法执行“ DOMSubtreeModified”。而且我可以看到有替代方案,但需要自动调用 javascript 并检测何时发生更改,而不是使用对函数的调用来执行它。有什么建议么?

另一个编辑:因为它是一个 .NET MVC 网站,所以我看不到如何将 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 回答