我正在尝试设置BlockUI的最小显示但是遇到了麻烦。无论我在setTimeout中放入什么值,该元素都会立即解除阻塞。
这里我正在设置jQuery ajaxForm插件的选项:
var options = {
type: 'POST',
contentType: 'application/json; charset-utf-8',
dataType: 'json',
complete: function () {
setTimeout($('#MyElement').unblock(), 5000);
}
};
在这里,当我点击提交按钮时,我在'MyElement'上显示BlockUI。
$('.submit').click(function () {
window.showBlockUI($('#MyElement'));
});
有什么想法吗?感谢。
答案 0 :(得分:1)
您正在调用setTimeout()
中的函数,而不是传递对函数的引用,因此它会立即执行并将该函数的返回结果传递给setTimeout()
。因此它立即执行。
将其更改为:
complete: function () {
setTimeout(function() {$('#MyElement').unblock()}, 5000);
}
或者以一种不太紧凑的形式,你可以更好地看到它:
complete: function () {
setTimeout(function() {
$('#MyElement').unblock()
}, 5000);
}