1

在下面的代码中,我试图在 ajax 请求之前显示 div,完成后我想隐藏 div。hide() 工作正常,但 show() 不工作。它在 Firefox 中运行良好。

$("#btnpst").click(function () {
   $('#dvloading').show();
   $.ajax({
       url: url,
       type: "POST",
       async: false,
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: function (data, st) {
           if (st == "success") {
               $('#dvloading').hide();
           }
       },
       error: function () {
           $('#dvloading').hide();
       }
   });
   } //<
});

HTML

<div id="dvloading" style="width: 480px; height: 320px; position: absolute; overflow: hidden;">
    <image src="../loading_2.gif" style="margin-top: 120px;">
</div>
4

2 回答 2

0

我认为您正在本地进行测试,并且响应非常快。为什么不改变这条线

$('#dvloading').hide();

对此

setTimeout(function(){$('#dvloading').hide();},5000);

看看是不是这样。从 javascript 控制台检查是否没有与 js 相关的错误也会很有帮助

于 2012-08-10T05:58:46.437 回答
0

“如果我将警报放在 hide() 上方,我就能看到它”。“没有警报它是不可见的。ajax 调用大约需要 10 秒”

这两个语句在某种程度上似乎是矛盾的,如果你DIV的实际显示然后隐藏并且 ajax 调用大约需要 10 秒,那么它应该也会出现没有警报框.. 我真的怀疑 ajax 调用是否需要大约 10 秒..

这是一个说明您的场景的小提琴,我已经从 ajax 调用中删除了内容类型属性并使用了 flickr 的 json 响应页面。它工作正常。

jsfiddle

于 2012-08-10T20:34:17.160 回答