我正在使用Jquery Ajax函数在点击事件中从数据库中获取数据。
此功能正常工作并显示数据。 但是加载数据需要时间,因此我想在获取数据的同时放置加载图像。 我用这种方法做了
<script type="text/javascript">
jQuery(function($) {
$(document).ready(function() {
$("#imgs").hide();
$(".letter").bind('click', function(){
$("#imgs").fadeIn();
var val = $(".letter").val;
var site = '<?php echo site_url(); ?>';
$.ajax({
url: site+'/wp-content/themes/premiumnews/newContent.php?letter='+$(this).html(),
success:function(data){
$("#imgs").hide();
$("#content1").html(data);
}
});
});
});
});
</script>
当我点击按钮时,显示加载图像,但成功后图像应该消失,在我的情况下它仍然存在
我的代码错了吗?或者我使用了错误的方法?
答案 0 :(得分:11)
这是我过去一直使用的:
$('#loading_div').hide().ajaxStart(function(){
$(this).show();
}).ajaxStop(function() {
$(this).hide();
});
答案 1 :(得分:2)
在$ .ajax()之前;打电话来做这个。在ajax调用之前用这个替换整个html。然后on onccess将整个html替换为您的内容。
$("#content1").html("<img style=\"margin-left: auto; margin-right: auto;\" src=\"ajax-loader.gif\" alt=\"Loading...\" title=\"Loading...\" />");
答案 2 :(得分:0)
从我可以告诉你的代码看起来很好。你确定正在调用成功函数吗?尝试将alert("")
添加到success函数中,看看是否成功调用了它。如果没有,那就是你的问题。
答案 3 :(得分:0)
$("#report").live( "submit" , function(){
// Add loading image until get the results
$("#loading_div").html("<img style=\"margin-left: auto; margin-right: auto;\" src=\"ajax-loader.gif\" alt=\"Loading...\" title=\"Loading...\" />");
var formdata = $(this).serialize(); // Get
$.post( "ajax_report.php", formdata, function( data ) {
$("#results").html ( data ); // Add success data in '#results' element
$("#loading_div").empty(); // Remove loading image on success
});
return false;
});
在页面中添加这些行。
<span id="loading_div"></span>
<span id="results"></span>
<form id="report" name="report" action="" method="post">
<input name="firstname" value=""></input>
<input name="middlename" value=""></input>
<input name="lastname" value=""></input>
</form>