我想刷新div。它应该从服务器上获得新信息。所有其他答案都假设您已从$ .ajax请求中获取新数据,并告诉您将该数据加载到div上,隐藏它并再次显示它,如下所示:
$("#panel").hide().html(data).fadeIn('fast');
我知道,我知道,我可能应该只使用Ajax获取数据。但是现在,我想刷新div,而不刷新页面,也不需要在div中添加新的HTML。这可能吗?
答案 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()它的工作原理完善。 你可以试试这个
$("#panel").toggle().toggle();
&#13;
它非常适合我,因为我正在开发一个信使,需要最小化和最大化聊天框,这样做最好,而不是上面的代码。