3

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

如何解决这个问题?

4

1 回答 1

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。

无论哪种方式,祝您好运,如果您想对此进行更多说明,请告诉我。阿德里安

于 2013-06-24T18:03:02.423 回答