有人可以帮我解决有关使用jquery blockui插件(http://jquery.malsup.com/block/#)的问题吗?
为什么这不起作用?
$(document).ajaxStart($.blockUI({message: "wait..."})).ajaxStop($.unblockUI);
如果我这样做:
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
它可以工作,但我想设置覆盖我自己的默认消息。这也不起作用:
$.blockUI({ message: "wait..." });
我已经能够用这个覆盖消息:
$ .blockUI.defaults.message =“等待......”;
但是如果我在我的页面中定义div并将其传递给message属性然后它不起作用,但根据插件网站中的文档它应该:
<div id="loadingMessageBox" style="display: none;">
<img src="../Images/spinning.gif" />wait...
</div>
$.blockUI.defaults.message = $("#loadingMessageBox");
感谢。
答案 0 :(得分:1)
$(document).ajaxStart()将函数引用作为参数。
当ajax调用启动时,它为将来调用jquery提供了一个函数。
这就是有效的版本是$document.ajaxStart($.blockUI)
而不是$document.ajaxStart($.blockUI())
你的第二个版本$.document.ajaxStart($.blockUI({message: 'wait...'})
在功能上等同于$document.ajaxStart($.blockUI())
- 它正在立即调用blockUI函数,而不提供对它的引用。
如果你不想更改默认的blouckUI消息,解决这个问题的最简单(也许不是最好的)方法是将它包装在另一个函数中,如下所示:
var ajaxBlock = function() { $.blockUI({message: 'wait...'}) }
$(document).ajaxStart(ajaxBlock);