首页 > 解决方案 > 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>

标签: javascripthtmlfunctiononloadonmouseout

解决方案


输出功能:

alert函数打开(window或隐式global对象)。它不在返回的div元素上(它是 的一个实例HTMLDivElement)。

将您的功能更改为:

function outFunction() {
    window.alert("Don't Leave!")
}

请注意,这也有效(使用相同的alert功能,因为windowglobal对象):

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.

推荐阅读