javascript - Onload 和 onmouseout 事件的 Javascript 错误
问题描述
当 onmuseout/onload 事件发生时,我试图执行代码,但由于某种原因我的代码没有运行?
function outFunction() {
document.getElementById("mouseout").alert("Don't Leave!")
}
function myFunction() {
document.getElementById("hi").innerHTML = "This DIV is loaded."
}
<div onmouseout="outFunction()" , id="mouseout">DIV</div>
<div id="hi" onload="myFunction()"></div>
解决方案
输出功能:
alert
函数打开(window
或隐式global
对象)。它不在返回的div
元素上(它是 的一个实例HTMLDivElement
)。
将您的功能更改为:
function outFunction() {
window.alert("Don't Leave!")
}
请注意,这也有效(使用相同的alert
功能,因为window
是global
对象):
function outFunction() {
alert("Don't Leave!")
}
我的功能:
onload
上没有定义HTMLDivElement
。你应该document.addEventListener( 'DOMContentLoaded', handler )
改用。
将您的 HTML 和 JavaScript 函数更改为:
<div id="hi"></div>
function myFunction() {
document.getElementById("hi").innerHTML = "This DIV is loaded."
}
document.addEventListener( 'DOMContentLoaded', myFunction ); // Do NOT put parentheses! i.e. don't put `myFunction()`, just put `myFunction` - because you're passing a function-reference, not a function-call.
推荐阅读
- smartsheet-api - 自动导出已发布的 Smartsheet
- json - Apache Spark 读取带有额外列的 JSON
- android - Android 前台服务
- php - PHP 类属性在构造函数中初始化时为空
- python - 使用 matplotlib 在 4-D 数据中插入颜色
- sql - 计算每季度的平均值
- angular - 角度错误:找不到模块“firebase/app”
- firebase - 如何将 Firebase RTDB 与 Flutter Stream 结合使用
- angular - 如何在 Angular 5 应用程序中正确保存日期?
- ios - tableView.reloadData() 只调用一次