【发布时间】:2011-06-12 03:37:53
【问题描述】:
编写执行以下操作的代码:
- 在加载时向网页添加鼠标侦听器
- 检查鼠标位于哪个元素上
- 如果鼠标位于锚标记上,则在离开前在该位置停留一段时间后执行特定功能。现在我只是随意使用 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>
在测试时我发现当警报被触发时,它会被触发多次;两次、三次甚至更多。我想知道为什么会发生这种情况,以及我可以做些什么来避免为同一元素多次触发警报。
【问题讨论】:
标签: javascript