jquery在chrome中动态更改css而不是刷新

时间:2012-08-10 05:33:23

标签: jquery css google-chrome

在下面的代码中,我试图在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>

2 个答案:

答案 0 :(得分:0)

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

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

到这个

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

看看是否属实。另外,检查javascript控制台中是否存在与js相关的错误

会很有帮助

答案 1 :(得分:0)

  

“如果我将警报置于hide()之上,我就能看到它”。 “没有警报就不可见.ajax通话大约需要10秒”

这两个陈述似乎有点矛盾,如果你的DIV实际显示然后被隐藏并且ajax调用大约需要10秒,那么它应该没有警报框就显示出来了。我真的怀疑是否ajax调用大约需要10秒钟。

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

jsfiddle