【问题标题】:Display loading while webservice is runningWeb服务运行时显示加载
【发布时间】:2011-02-06 05:48:17
【问题描述】:

在对页面的初始请求中,我触发了一个 Web 服务并希望显示一条加载消息。 当页面完成加载后,我想从屏幕中删除等待消息,但当复选框中的更改事件触发带有另一条加载消息的 Ajax 调用时再次显示它。

此代码不符合给定规范:

$(文档).ready( $(函数(){ $('#loadingDiv').hide(); $('#productsDropDown') .change(函数(){ var prodValue = $(this).val(); $('#proddate').load('getpdate.php', {prod: prodValue }); }); $('#loadingDiv') .ajaxStart(函数() { $(this).show(); }) .ajaxStop(函数() { $(this).hide(); }) ; }); );

我做错了什么?

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    你需要重新排列你的代码,像这样:

    $(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() { }) 中(see details here),无需包裹两次。

    【讨论】:

    • 谢谢。这就是解释......我通过反复试验得到了相同的结果
    【解决方案2】:
    $(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();
            });
        });
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-21
      • 2017-01-14
      • 1970-01-01
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      • 2013-09-02
      相关资源
      最近更新 更多