【发布时间】:2018-02-27 22:06:46
【问题描述】:
我正在尝试使用rules 类设置段落标记的值。它应该每 4 秒在 a、b、c 等之间切换并重复。由于某种原因,该功能根本没有运行,并且chrome的开发人员工具中没有错误。当我改为使用 <body onload="rulesSlideshow"> 调用该函数时,没有任何变化。
<script type="text/javascript">
document.onload = function rulesSlideshow() {
setTimeout(setRule("a"), 4000);
setTimeout(setRule("b"), 4000);
setTimeout(setRule("c"), 4000);
setTimeout(setRule("d"), 4000);
setTimeout(setRule("e"), 4000);
rulesSlideshow();
}
function setRule(rule) {
document.querySelector("rules").innerHTML = rule;
}
</script>
<p id="rule" class="rules"></p>
编辑:通过删除document.onload = 并添加<body onload="rulesSlideshow()">,我可以运行代码(由Daniel Beck 提供)。尽管如此,我的代码还是找不到段落标签。
【问题讨论】:
-
所有超时设置为 4 秒,因此它们同时运行...
-
以上加上你的函数是不可调用的。您不是在全局范围内声明一个函数,而是将一个函数放在 document.onload 的范围内。
-
但是代码根本没有运行。如果我将
window.alert("Test");放在顶部,它永远不会触发。 -
我相信你想要
onload="rulesSlideshow()"。但是您还尝试使用自己的document.onload处理程序定义脚本;任选其一。 -
您的代码还有其他几个问题,是的。我正在写答案。
标签: javascript html function innerhtml