change事件中显示loading图层失效

qq_39182540 2019-09-04 06:21:51
$("#monitor_data_way").change(function(){
if($("#monitor_data_way").val()=="realtime"){
var tmp=page_lock();
if(tmp==true){
monitor_url="realtime?sum_nic_role=False&sum_nic_node=False&sum_lun_fs=True";
var myChart=[];
myChart=render_chart(myChart,monitor_url);
interval_id = setInterval(function(){handle_timer_event(myChart,monitor_url)},1000);
$("#day_lun_history").prop("hidden",true);
$("#monitor-render-control").show();
page_unlock();
}
}else{
clearInterval(interval_id);
get_history_data();
$("#day_lun_history").prop("hidden",false);
$("#monitor-render-control").hide();
}
})
我的page_lock()函数功能就是show一个图层,并返回了一个true,问下点击事件触发时,为什么page_lock没生效,貌似是执行顺序不对?page_lock会等下面的函数中ajax(同步、异步都有)接收数据完毕才会执行。我该怎么做,ajax用的太多了,不方便改动,怎么能简便处理来使page_lock()生效。
...全文
78 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39182540 2019-09-05
  • 打赏
  • 举报
回复
page_lock()这个函数没调用任何ajax,就是个图层show()。
page_lock(){
$("#background,.loading",parent.document).show();
return true;
}
天际的海浪 2019-09-04
  • 打赏
  • 举报
回复
类似这样

function page_lock(foo) {
	$.ajax({
		url: ".........",
		type: "POST",
		success: function (data) {
			.........
			foo(true);
		}
	});
}

    $("#monitor_data_way").change(function(){
        if($("#monitor_data_way").val()=="realtime"){
            page_lock(function(tmp) {
	            if(tmp==true){
		            monitor_url="realtime?sum_nic_role=False&sum_nic_node=False&sum_lun_fs=True";
		            var myChart=[];
		            myChart=render_chart(myChart,monitor_url);
		            interval_id = setInterval(function(){handle_timer_event(myChart,monitor_url)},1000);
		            $("#day_lun_history").prop("hidden",true);
		            $("#monitor-render-control").show();
		            page_unlock();
	            }
            });
        }else{
            clearInterval(interval_id);
            get_history_data();
            $("#day_lun_history").prop("hidden",false);
            $("#monitor-render-control").hide();
        }
    })
天际的海浪 2019-09-04
  • 打赏
  • 举报
回复
如果page_lock()函数中有异步ajax就不能用return返回true,应该改用回调函数的形式返回数据。

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧