在webservice运行时显示加载
在对页面的初始请求中,我触发Web服务并希望显示加载消息。 当页面加载完毕后,我想从屏幕上删除等待的消息,但是当复选框中的更改事件触发带有另一个加载消息的Ajax调用时,再次显示它。
此代码不符合给定的规范:
$(文件)。就绪( $(function(){ $( '#loadingDiv')隐藏()。 $( '#productsDropDown') .change(function(){ var prodValue = $(this).val(); $('#proddate')。load('getpdate.php',{prod:prodValue}); }); $( '#loadingDiv') .ajaxStart(function(){ $(本).show(); }) .ajaxStop(function(){ $(本).hide(); }) ; }); );
我究竟做错了什么?
您需要重新排列代码,如下所示:
$(function() { $('#loadingDiv').hide(); $('#productsDropDown').change(function() { var prodValue = $(this).val(); $('#proddate').load('getpdate.php', {prod: prodValue }); }); $('#loadingDiv').ajaxStart(function() { $(this).show(); }).ajaxStop(function() { $(this).hide(); }); });
目前你有这个:
$(document).ready( $(function() { }); );
document.ready
接受一个函数,你传递一个jquery元素。 $(function() { })
相当于将它包装在$(document).ready(function() { })
( 详见此处 ),无需将其包装两次。
$(document).ready(function() { var loader = $('#loadingDiv'); loader.hide(); $('#productsDropDown').change(function() { var prodValue = $(this).val(); loader.show(); $('#proddate').load('getpdate.php', {prod: prodValue }, function() { loader.hide(); }); }); );