javascript - 根据php文件重置div内容

标签 javascript php jquery html

我有一个请求静态页面的客户端,将所述页面的内容滚动到底部,然后将页面的内容切换到另一个 php 文件(仅返回 html),滚动到底部并重复。我尝试使用递归 jQuery 函数来完成此操作,但每次函数调用自身时,它运行的循环次数似乎是之前运行次数的两倍,或者内容几乎立即刷新。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
    <div id="content">
            <p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p>
            <p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p>
            <p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p>
            <p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p>
            <p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p><p>This is dummy content.</p>
    </div>
    <script type="text/javascript">
        function Slideshow (Counter) {
            var Count = Counter;
            var Pages = [   "slideshow/50_50.php",
                            "slideshow/news.php",
                            "slideshow/sponsorship.php",
                            "slideshow/standings.php",];
            var time = ($(document).height()/100)*1000;
            var height = $(document).height() - $(window).height();
            if (height <= 0) {
                height = $(window).height();
                time = 5000;
                }
            $("html, body").animate({ scrollTop: height }, time, function() {
                $("#content").load(Pages[Count], function(){
                    Count++;
                    if (Count >= 2) {
                        Count = 0;
                        }
                    //alert("Height: "+height+"\nTime:"+time+"\nCounter:"+Counter);
                    Slideshow(Count);
                    });
                });
            };
        $(document).ready(function() {
            Slideshow(0);
            });
    </script>
</body>
</html>

“Pages”数组是要返回内容的页面列表。时间和高度(应该是)滚动动画的计算字段,并检查如果内容小于屏幕高度,则内容将在屏幕上保留 5 秒。

如果有另一双眼睛,我们将不胜感激。

最佳答案

这就是问题:

$("html, body").animate(...

对于每个递归调用,您的 Slideshow 方法将被调用两次,从而导致调用激增。尝试替换为:

$('body').first().animate(...

关于javascript - 根据php文件重置div内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32216192/

相关文章:

php - 如何使用 Angular4 进行 Codeigniter View ?

javascript - 对象不支持属性或方法 'forEach' IE 11

php - Laravel 中的通配符 URL 路由

php - 从多个表中检索记录 MySQL

javascript - DIV on hover - 让它可以悬停并改变它的不透明度,不闪烁

JavaScript 对象文字和 jQuery $(类)

javascript - 在输入中选择文本并删除不更改输入值( Angular )

javascript - 当键为 'is.a.string' 时,如何在嵌套对象中获取/设置值?

javascript - 访问 WebSocket 时出现 InvalidStateError

javascript - 互联网浏览器中的enhance.js错误