首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用jquery使div可见?

如何使用jquery使div可见?
EN

Stack Overflow用户
提问于 2014-02-12 21:10:00
回答 3查看 1K关注 0票数 2
代码语言:javascript
运行
复制
 function showwaitmsg() {
        $("#wait").fadeIn();
        return  true;
    }
    function hidewaitmsg() {
        $("#wait").fadeOut();

    }

    $("a:contains('Test1')").bind("click", function () {
      if (showwaitmsg())
        test2(); // Function contains XMLHttpRequest
        hidewaitmsg();
    });


   <div id="wait" class="overlay" style="display: none">
             Please Wait
        <img src="~/loading.gif" />
    </div>

在处理XMLHttpRequest时,我试图使用上面的代码显示一条“请等待”消息。等待div在请求处理后出现得太晚了。请您告诉我,一旦单击test1按钮,我应该如何使wait可见?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-12 21:56:09

与其在showwaitmsg()调用之外调用test2()hidewaitmsg(),不如将它们包含在ajax调用中。

代码语言:javascript
运行
复制
$.ajax({
    ...,
    beforeSend: showwaitmsg(),
    ...,
    complete: hidewaitmsg()
});

beforeSend函数中返回false将取消请求。从jQuery 1.5开始,不管请求的类型如何,都将调用beforeSend选项。还值得注意的是,complete是在执行successerror回调之后调用的。

票数 2
EN

Stack Overflow用户

发布于 2014-02-12 21:12:07

代码语言:javascript
运行
复制
$("#id_of_button").on('click', function() {
    $("#wait").show();
});
票数 3
EN

Stack Overflow用户

发布于 2014-02-12 21:18:57

最好将此代码移动到AJAX调用本身,如下所示:

代码语言:javascript
运行
复制
$.ajax({ 
    ...,
    beforeSend: function() {
        $('#wait').fadeIn();
    },
    complete: function() {
        $('#wait').fadeOut();
    }
});

它将有助于正确地分离逻辑,并支持在代码中进行这样的AJAX调用的更多方法,例如按键盘按钮等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21739680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档