【问题标题】:Jquery block UI when ajax startsajax启动时Jquery阻止UI
【发布时间】:2011-03-04 03:14:59
【问题描述】:

我试图在 ajax 像这样启动时显示 blockui:

 // block when ajax activity starts
    $(document).ajaxStart($.blockUI({ message: '<h1><img src="busy.gif" /> Just a moment...</h1>' }));

然后我想阻止它这样做

 // unblock when ajax activity stops 
    $(document).ajaxStop($.unblockUI); 

问题是执行ajax时它不会加载我做错了什么??

【问题讨论】:

    标签: jquery user-interface blockui


    【解决方案1】:

    我认为您需要像这样更改它:

    $(document).ajaxStart(function () {
      $.blockUI({ message: '<h1><img src="busy.gif" /> Just a moment...</h1>' });
    });
    

    当您需要将参数传递给要绑定的函数时,您应该使用匿名函数,然后在其中调用您的方法。 $.blockUI() 返回的东西是不可调用的,所以以这种方式绑定它是行不通的。

    【讨论】:

    • 更多背景知识,ajaxStart($.blockUI({..})) 将blockUI 调用的结果传递给ajaxStart 函数。上面的答案传递了一个每次启动ajax调用时要调用的函数。
    【解决方案2】:

    根据jQuery documentation

    每当即将发送 Ajax 请求时,jQuery 都会检查是否还有其他未完成的 Ajax 请求。如果没有进行中,jQuery 会触发 ajaxStart 事件。此时会执行所有已使用 .ajaxStart() 方法注册的处理程序。

    那么也许您还有其他阻止此事件触发的 AJAX 请求?

    【讨论】:

      猜你喜欢
      • 2011-02-07
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 2012-06-20
      • 2013-11-17
      • 2016-09-13
      • 2011-07-01
      相关资源
      最近更新 更多