问题描述
我正在尝试在发生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>
解决方法
outFunction:
alert
函数位于window
(或隐式global
对象)上。返回的div
元素(是HTMLDivElement
的实例)上的不是。
将功能更改为此:
function outFunction() {
window.alert("Don't Leave!")
}
请注意,这也是可行的(使用相同的alert
函数,因为window
是global
对象):
function outFunction() {
alert("Don't Leave!")
}
myFunction:
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.