我尝试在我的网站上实现AJAX。当单击div changepass的内容时,它应该加载changepass.template.php。这是我正在使用的代码。
$(function() {
$(".changepass").click(function() {
$(".block1").load("views/changepass.template.php");
return false;
});
我的问题是如何在页面changepass.template.php完全加载时显示GIF动画(loading.gif)。给我一些代码提示。
答案 0 :(得分:22)
有很多方法可以做到这一点。 一个简单的方法:
<div style="display:none" id="dvloader"><img src="loading.gif" /></div>
<强> JS:强>
$(function() {
$(".changepass").click(function() {
$("#dvloader").show();
$(".block1").load("views/changepass.template.php", function(){ $("#dvloader").hide(); });
return false;
});
});
根据James Wiseman的建议,编辑显示:阻止到 show():)
答案 1 :(得分:9)
为了使其更加健壮,例如,您忘记添加
<div style="display:none" id="dvloader"><img src="loading.gif" /></div>
到html,你也可以在jQuery中执行此操作,例如:
var container = $.create('div', {'id':'dvloader'});
var image = $.create('img', {'src':'loading.gif'});
container.append($(image));
$("body").append($(container));
将自动添加div。
只需点击onclick按钮事件即可。
使错误更容易接受。
答案 2 :(得分:2)
而是设置样式
.css("display", "block");
只需使用.hide()
和。show()
方法。
这些解释了HTMl元素的更广泛的样式表定义。您可能不希望为图像显示“阻止”。元素可以有许多不同的显示样式:
答案 3 :(得分:0)
你可以在调用load之后调用一些方法显示加载gif并在load函数中使用回调隐藏它:
$(function() {
$(".changepass").click(function() {
$("#gifImage").show();
$(".block1").load("views/changepass.template.php",null,function(){
$("#gifImage").hide();
});
return false;
});