用jquery刷新div

时间:2012-05-03 08:16:51

标签: javascript jquery html refresh

我想刷新div。它应该从服务器上获得新信息。所有其他答案都假设您已从$ .ajax请求中获取新数据,并告诉您将该数据加载到div上,隐藏它并再次显示它,如下所示:

$("#panel").hide().html(data).fadeIn('fast');

我知道,我知道,我可能应该只使用Ajax获取数据。但是现在,我想刷新div,而不刷新页面,也不需要在div中添加新的HTML。这可能吗?

2 个答案:

答案 0 :(得分:36)

  

我想刷新div而不刷新页面......这可能吗?

是的,虽然除非你改变div的内容,否则它不会显而易见。

如果您只想要图形淡入效果,只需删除.html(data)来电:

$("#panel").hide().fadeIn('fast');

以下是您可以使用的演示:http://jsfiddle.net/ZPYUS/

它更改div的内容而不对服务器进行ajax调用,也不刷新页面。但内容是硬编码的。如果不以某种方式联系服务器,你就无法做任何事情:ajax,某种子页面请求或某种页面刷新。

HTML:

<div id="panel">test data</div>
<input id="changePanel" value="Change Panel" type="button">​

的javascript:

$("#changePanel").click(function() {
    var data = "foobar";
    $("#panel").hide().html(data).fadeIn('fast');
});​

的CSS:

div {
    padding: 1em;
    background-color: #00c000;
}

input {
    padding: .25em 1em;
}​

答案 1 :(得分:8)

我尝试了第一个解决方案并且它有效,但最终用户可以很容易地识别出div正在刷新,因为它是fadeIn(),没有淡入我试过.toggle()。toggle()它的工作原理完善。 你可以试试这个

&#13;
&#13;
$("#panel").toggle().toggle();
&#13;
&#13;
&#13;

它非常适合我,因为我正在开发一个信使,需要最小化和最大化聊天框,这样做最好,而不是上面的代码。