为什么在 Firefox 更新后 JQuery 在我的 MVC 4 应用程序中不起作用?

Why is JQuery not working in my MVC 4 application after Firefox Update?

我一直在用 VS 编写 ASP.NET MVC 4 项目。我让它在旧版本的 Firefox 和 IE 11 中完美运行。它在 IE 11 中仍然运行良好,但在我将 FF 更新到 35.0.1 后,我的脚本无法运行。如何让我的脚本在最新版本的 Firefox 中运行?

我的 _Layout 视图包含以下脚本:

 ......
 @Scripts.Render("~bundles/jquery")
 <script>
      $.ajax({
      url: '@Url.Action("Action", "Controller")',
      type: 'post',
      cache: 'false,
      async: 'true',
      data: '{}',
      success: function(result){
      $('#progress').html(result);
           } 
      });

      $(document).ready(function(){
           function RefreshPartial(){
                setTimeout(function(){
                     loadPartialView();
                    RefreshPartial();
                }, 3000);
           }
      RefreshPartial();
      }); 
 </script>
 @RenderSection("scripts", required:  false)
 </body>
 ......

在 Firefox/Fox 它击中了

 "$(document).ready(function ()  {" 

行然后跳到脚本底部

 });

在前往 Jquery 之前。它永远不会回到我的内联 JS。它抛出以下异常:"SyntaxError: An Invalid or illegal string was specified" 在下面的 "if" 语句中:

 3093     for ( ; list && firingIndex < firingLength; firingIndex++ ) {
 3094          if ( list[ firingIndex ].apply{ data[  ], data[ 1 ] ) == false && options.stopOnFalse )  {
                    memory = false;
                    break;
               }
          }

它多次循环 for 语句,然后在同一个 if 语句中抛出错误:"TypeError: Constructor Document requires 'new'"。 它从不运行我的内联脚本,所以我的局部视图从不加载。同样,这只发生在最新版本的 FF 中。

Firefox 35.0.1 不喜欢以下的长版本:

 $(document).ready(function(){

我的代码使用 shorthand 版本:

 $(function()  {

我不知道为什么,但它马上起作用了。

我看不出它为什么不起作用...您尝试过做一个简单的 jquery 警报吗?它有效吗?删除 ajax 呼叫并发出警报,如果您的警报正常工作,那么您的 jquery 正在工作。否则您可能没有正确链接 jquery。如果警报有效,请尝试简单的命中或未命中 ajax 呼叫。

    $.ajax( "example.php" )
  .done(function() {
    alert( "success" );
  })
  .fail(function() {
    alert( "error" );
  })
  .always(function() {
    alert( "complete" );
  });

编辑:没有理由 FF 不能与 $(document).ready(function(){}); 一起使用 我目前将它用于 Web 服务,它适用于:safari、chrome、FF 和 IE 以及四五个移动浏览器。