Javascript 函数在 body onload 上无法正常工作

标签 javascript jquery html

我有一个 JavaScript 函数

<script language="javascript">
function toggle_color(color1, color2, cycle_time, wait_time) { 
   setInterval(function first_color() {
       document.body.style.backgroundColor = color1;
       setTimeout(change_color, wait_time);
   }, cycle_time);

    function change_color() {
     document.body.style.backgroundColor = color2;
    }
}
</script>

我在我的 body 上调用它 onload

<body onload="toggle_color("#61beb3", "#90a2c6", 4000, 2000);">
Lorem Ipsum Dolar.
</body>

但是什么也没发生。 body 的背景是while。有什么想法可能会出现错误吗?我所知道的是该脚本是真实的并且 100% 有效。

最佳答案

onload="toggle_color("
       ^             ^

看到属性值的开头了吗?看到属性值的末尾了吗?

要使用 " 作为由 " 字符分隔的 HTML 属性值中的数据,您需要将其表示为字符引用:" .

<小时/>

或者,使用 ' 字符来分隔 JS 字符串或分隔属性值。

<小时/>

更好的是,完全避免内在事件属性。他们有all kinds of gotchas除了让处理报价变得很痛苦之外。

改为使用 JavaScript 绑定(bind)您的事件处理程序。

function setDefaultColour() {
    toggle_color("#61beb3", "#90a2c6", 4000, 2000);
}

addEventListener("load", setDefaultColour)

关于Javascript 函数在 body onload 上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33435298/

相关文章:

javascript - 如何在 Array.prototype 和 Object.prototype 上的 javascript 中定义方法,使其不会出现在 for in 循环中

javascript为sqlite获取的结果创建一个表而不是多个表

html - 存储限制(在 IndexedDB 或 localStorage 上)是否适用于在计算机外运行的本地应用程序?

javascript - 为什么 UpdatePanel 内的按钮在第一次后不执行 JQuery 事件

html - CSS 样式表第一次没有链接到 HTML web-dev

javascript - react handleChange 语法

javascript - 在 LI 内时,Slidetoggle 无法正常工作

javascript - 在 javascript 中使用相同的参数组成链式函数

javascript - 使下一个按钮从当前 "number"继续

javascript - 通过脚本函数调用bootstrap模态对话框