【发布时间】:2018-08-15 05:07:56
【问题描述】:
好的,所以我需要创建一个带有红色背景的 div,然后注册“Mouseleave”事件,然后该事件将调用一个函数,该函数将显示以下文本“MouseLeave 事件已触发”。我的目标是,当我将鼠标移到我的 div 上然后将其移开时,我会收到一条警报,上面写着“MouseLeave 事件已触发”。然后,当我再次单击我的 div 时,它将取消注册 MouseLeave 事件,这样当我将鼠标移到 div 上时,什么都不会发生。这是我到目前为止的代码:
function attachEvent(myObject) {
// to do - get state of listener
myObject.addEventListener("onmouseleave", function attachEvent(){}, false);
alert("Mouse");
// to do - if previously called addEventListener, then I now want to call removeEventListener
myObject.removeEventListener("onmouseleave", function attachEvent(){}, false);
// to do - if previously called removeEventListener, then I now want to call addEventListener
myObject.addEventListener("onmouseleave", function attachEvent(){}, false);
}
div {background-color:red;padding:100px;max-width:25%;margin:auto}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>practice</title>
<script src="scripts.js"></script>
</head>
<body>
<script>
alert("Page loaded event fired");
</script>
<div id="cycle"; onclick="attachEvent(this)">
<h2 style="text-align:center">Click to cycle event listener</h2>
</div>
</body>
</html>
当我将鼠标移出 div 时,应该会弹出警报,但事实并非如此。我究竟做错了什么?请暂时保留这样的代码,因为我还不熟悉 getelementbyid。
【问题讨论】:
-
您还必须使用 mouseenter 侦听器才能使 mouseleave 工作
-
我该怎么做呢?我需要它,所以当我单击 div 框时,它会激活侦听器,该侦听器现在将显示鼠标,当我将光标移出 div 时,我应该得到另一个警报,说 mouseleave 事件已触发。
-
@Akshaypadwal 记录在哪里?
标签: javascript