【问题标题】:setInterval alert does not update with dom attributessetInterval 警报不随 dom 属性更新
【发布时间】:2012-05-24 23:42:40
【问题描述】:

每隔 5 秒调用 document.body.scrollHeight 的 alert 时,alert 返回文档的初始 scrollHeight,但即使页面的滚动高度明显改变也不会改变。有没有办法让它返回页面的实际滚动高度,而不仅仅是初始值?

代码/伪代码

<script>
    setInterval(function() {
        alert(document.body.scrollHeight);
    }, 5000);

    function extendHeight() {
    document.getElementById('box').style.height = 1000;
    }
</script>

<body>
  <div id='box' style='height: 500px;'>
    <button onClick="extendHeight();">Change Height</button>
  </div>
</body>

即使单击按钮后,警报也会返回 500 像素。

【问题讨论】:

  • 单击该按钮对我来说似乎是一个错误。贴出真实代码。
  • document.getElementById('box').style.height = '1000px'; ?
  • 所以今天的课程: 单元很重要,展示真实的工作示例代码会给你真正的答案!

标签: javascript html dom intervals


【解决方案1】:

问题是您应该将'1000px' 分配给document.getElementById('box').style.height 而不是1000

<script>
    setInterval(function() {
        alert(document.body.scrollHeight);
    }, 5000);

    function extendHeight() {
    document.getElementById('box').style.height = "1000px";
    }
</script>

<body>
  <div id='box' style='height: 500px;'>
    <button onClick="extendHeight();">Change Height</button>
  </div>
</body>

小提琴:http://jsfiddle.net/kzLEr/

【讨论】:

  • 我在上面修复了您的代码,您拥有 OP 所拥有的东西,而不是小提琴中的东西! :)
猜你喜欢
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 2021-03-20
  • 2019-07-14
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 2021-04-22
相关资源
最近更新 更多