jQuery .load停止嵌入页面/重新加载整个页面的视频

时间:2013-06-19 20:15:10

标签: php jquery html reload

我有一个关于用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页面模板的一部分,但我认为不重要)

如何解决这个问题?

1 个答案:

答案 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。

无论哪种方式,祝你好运,如果你想对此有更多的澄清,请告诉我。阿德里安