我有正确运行的jquery Ajax,
当ajax调用方法时如何显示消息?
我做了一些方法,但它无法正常工作。
function drawChart(posId) {
$.ajax({
type: 'GET',
dataType: 'json',
contentType: 'application/json',
url: '@Url.Action("GetProviderReport", "Report")',
data: { posId: posId },
beforeSend: function () { $("#loaderDiv").css("display","block"); },
success: function(result) {
var data1 = new google.visualization.DataTable();
var data2 = new google.visualization.DataTable();
var data3 = new google.visualization.DataTable();
var months = ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'ابان', 'اذر', 'دی', 'بهمن', 'اسفند'];
data1.addColumn('string', 'ماه');
data1.addColumn('number', 'مجموع نظر سنجی');
for (var i = 0; i < result.length; i++) {
if (result[i].typeValue == 1) {
data1.addRow([months[result[i].MonthValue - 1], result[i].CountValue]);
}
}
var chart = new google.visualization.ColumnChart(document.getElementById('chartdiv7'));
这是HTML代码<div id="loaderDiv" style="visibility: hidden">در حال دریافت اطلاعات</div>
答案 0 :(得分:1)
如果这是点击事件,您可以在用户点击按钮时添加加载程序($(&#34;#loaderDiv&#34;)。css(&#34; display&#34;,&#34 ;阻止&#34;);)然后在get调用完成时删除加载器($(&#34;#loaderDiv&#34;)。css(&#34; display&#34;,&#34; none&# 34);)
<div>
<button id="btn">Click me</button>
<script type="text/javascript">
$(function(){
$("#btn").click(function(event) {
clicked();
});
var clicked = function(){
alert("add loader");
//use the ajax call instead of setTimeout
setTimeout(function() {
//Remove the loader inside success/complete function
alert("remove loader")
}, 2000);
}
});
答案 1 :(得分:0)
如果ajax调用是此函数中的唯一内容,则可以将css部分移动到函数的第一部分 然后在成功/错误部分再次隐藏它 - 需要同时在ajax失败。
function drawChart(posId) {
$('#loaderDiv').css('visibility', 'visible');
//OR
$('#loaderDiv').show();
$.ajax({
type: 'GET',
dataType: 'json',
contentType: 'application/json',
url: '@Url.Action("GetProviderReport", "Report")',
data: { posId: posId },
success: function(result) {
$('#loaderDiv').css('visibility', 'hidden');
//OR
$('#loaderDiv').hide();