我已经实现了一个jQuery Bootgrid。我想管理显示和隐藏我已经实现的加载器。jQuery Bootgrid如何检查bootgrid是否仍在加载
分别显示和隐藏加载程序$("#ajaxLoader").show();
和$(“#ajaxLoader”)。hide();`。
我有我的Bootgrid初始化实现如下:
var grid = $('#grid').on("load.rs.jquery.bootgrid", function() {
$("#ajaxLoader").show();
}).bootgrid({
ajax: true,
ajaxSettings: {
method: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false
},
searchSettings: {
delay: 500,
},
url: myURL,
rowCount: [5, 10, 50, 75, 100, 200, -1]
}).on("loaded.rs.jquery.bootgrid", function (e) {
$("#ajaxLoader").hide();
});
现在这工作正常,但我想优化它在两个方面:
Bootgrid的搜索功能似乎有它自己的装载机,所以有没有办法为了不显示我的ajax加载程序,如果搜索发生?
我的装载器弹出并快速隐藏短的查询。有什么办法可以推迟发生?
解决选2可能会解决方案1在它自己的,但无论如何这里是我试过关于选项2
我试过setTimeout(function() { $("#ajaxLoader").show(); }, 1000);
,但那么它永远不会被再次隐藏。我通过使用setTimeout(function() { $("#ajaxLoader").hide(); }, 1000)
解决了这个问题,但它闪烁显示并不必要地隐藏。
所以理想情况下,我需要检查Bootgrid是否在我应用该函数之前仍在加载。
我该如何解决我的加载问题?
编辑:
我也试着设置loading
变量,其中对我load
方法我说:
loading = true;
setTimeout(function() { if (loading) { $("#ajaxLoader").show(); }}, 1000);
和我loaded
事件如下:
setTimeout(function() { $("#ajaxLoader").hide(); }, loaderDelay);
这仍然给我同样的闪烁错误。