(好的,首先,您需要提供一个 URL 到window.open()
,否则它不知道要打开哪个页面。除此之外:)
当您执行时,延迟代码中setTimeout()
的值会this
被重置。
一个快速的解决方法是立即提取 URL,然后将一个函数传递给setTimeout()
可以使用该变量的函数。
<a href="../cc2b/myrec.html"
onMouseOver="var popupUrl = this.href; Popup = setTimeout(function(){openwindow(popupUrl)}), 3000);"
onMouseOut="clearInterval(Popup)">
My Rec
</a>
但是,更简洁的解决方案是onMouseOver
通过在函数中设置超时来最小化代码openhoverpopup
:
<a href="../cc2b/myrec.html"
onMouseOver="openhoverpopup(this.href)"
onMouseOut="clearhoverpopup()">
My Rec
</a>
<script>
var popupTimeout = null;
function openhoverpopup(url) {
popupTimeout = setTimeout(function () {
window.open(url);
}, 3000);
}
function clearhoverpopup() {
clearTimeout(popupTimeout);
}
</script>