我有一个关于用jQuery-.load重新加载div的问题。代码:
<h1>Official Live-Stream</h1>
<object width="560" height="315" data="http://www.dailymotion.com/embed/video/x10sbxw"></object>
</br>
</br>
<script>
(function($)
{
$(document).ready(function()
{
$.ajaxSetup(
{
cache: false,
beforeSend: function() {
$('#content').hide();
$('#loading').show();
},
complete: function() {
$('#loading').hide();
$('#content').show();
},
success: function() {
$('#loading').hide();
$('#content').show();
}
});
var $container = $("#liveracingblog");
$container.load("../live/addon/addon_ticker.php");
var refreshId = setInterval(function()
{
$container.load('../live/addon/addon_ticker.php');
}, 30000);
});
})(jQuery);
</script>
<div id="liveracingblog"></div>
我遇到的问题是,每隔30秒不仅会重新加载liveracingblog-div,而且整个页面会使嵌入第2行的视频停止。
您可以在此处观察此问题:http://www.racingblog.de/racingbloglive/(代码是Wordpress
页面模板的一部分,但我认为不重要)
如何解决这个问题?
答案 0 :(得分:0)
我查看了该页面,#content div似乎包含了您隐藏并在js中显示的嵌入视频。您只想隐藏并显示#liveracingblog div
以下更改应该有效:
$.ajaxSetup(
{
cache: false,
beforeSend: function() {
$('#liveracingblog').hide();
$('#loading').show();
},
complete: function() {
$('#loading').hide();
$('#liveracingblog').show();
},
success: function() {
$('#loading').hide();
$('#liveracingblog').show();
}
});
此外,我注意到每30秒从数据库中提取大量记录,并且因为您正在使用load()方法,所以向下滚动的任何用户都将返回到此div的顶部。我会建议忘记隐藏div。相反,用$ get替换load()以返回任何新记录(自上次请求以来),然后将这些新记录添加到#liveracingblog div。
无论哪种方式,祝你好运,如果你想对此有更多的澄清,请告诉我。阿德里安