gpt4 book ai didi

Javascript:多次触发鼠标悬停和鼠标移出警报检查

转载 作者:行者123 更新时间:2023-11-29 17:28:51 25 4
gpt4 key购买 nike

编写执行以下操作的代码:

  1. 在加载时向网页添加鼠标监听器
  2. 检查鼠标位于哪个元素上
  3. 如果鼠标位于 anchor 标记上,则在离开前停留一段时间后执行特定功能。现在我只是任意使用 10000 毫秒

下面是我用作测试平台的示例代码

<html>
<head></head>
<title>A test page</title>
<body>

<script type='text/javascript'>
document.addEventListener("mouseover", checkElement, false);

function checkElement(ev){
var elm = ev.target || ev.srcElement;
if(elm.tagName === 'A'){
var focusTime = new Date().getTime();
elm.addEventListener("mouseout", function() {tellTime(focusTime)}, false);
}
}

function tellTime(focusTime){
var blurTime = new Date().getTime();
if ((blurTime - focusTime) > 10000) {
alert ('You spent a long time there');
}
}
</script>

<a href="www.google.co.in">This is a hyperlink</a>
<p> This is just some bloody text </p>
</body>

</html>

在测试时我发现,当警报被触发时,它会被多次触发;两次,三次甚至更多。我想知道为什么会发生这种情况,以及我可以做些什么来避免对同一元素多次触发警报。

最佳答案

您正在向元素添加多个 mouseout 事件。

您需要取消绑定(bind)前一个,或者正常分配它并让 focusTime 作用于两个函数。

关于Javascript:多次触发鼠标悬停和鼠标移出警报检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com