我正在使用jquery和getJSON方法,我想知道是否有办法在加载我的内容之前显示一条消息说加载。我知道jquery ajax调用之前有提交回调,你可以有一些东西,但getJSON只有三个选项。
有什么想法吗?
答案 0 :(得分:9)
将此内容添加到您的页面:
<div id="loading" style="display:none">
<img src="/images/ajax-loader.gif" alt="Loader" /> Loading...
</div>
<script type="text/javascript">
$().ready(function() {
$("#loading").bind("ajaxSend", function() {
$(this).show();
}).bind("ajaxComplete", function() {
$(this).hide();
});
});
</script>
您可以根据需要设置loader-div的样式,例如Google Mail-like loader:
#loading
{
position:fixed;
_position:absolute;
top: 0;
left:47%;
padding:2px 5px;
z-index: 5000;
background-color:#CF4342;
color:#fff;
}
答案 1 :(得分:7)
在您可以触发的“和”成功“事件之前有自定义.ajax
”。
但是,通常情况下,你会做一些像
这样的事情
showLoadingAnimation();
$.getJSON( ..... function(){
dontShowLoadingAnimation();
});
或类似的东西。
然而,你的问题有点像vauge,很难确定你想要做什么,而你只是用javascript就无法做到。
答案 2 :(得分:5)
您可以在jQuery对象上使用ajaxSend和ajaxStop来附加相应的事件处理程序,如this tutorial中所示。无论请求类型(所有jQuery AJAX和JSON方法)如何,这都将显示进度指示器,并在发生错误时隐藏加载图形。
答案 3 :(得分:0)
肯特,
这样的东西可以工作,只显示一个简单的div元素,显示文本Loading ...然后显示我的JSON结果。
赖安