这是我的代码:
document.addEventListener('mousedown', function (e) {
bubbleDOM.style.visibility = 'hidden';
}, false);
我的问题是mousedown发生在我想要处理的链接上,这个链接是 在bubbleDOM里面。隐藏的呼叫非常快,不会处理链接。
如何延迟bubbleDOM.style.visibility = 'hidden'
?
答案 0 :(得分:1)
您可以使用setTimeout来延迟代码
setTimeout('your_code', time);
例如:
setTimeout('bubbleDOM.style.visibility = 'hidden';', 1000);
否则,
而不是延迟代码,您也可以使用javascript重定向用户
window.location = "http://www.google.com/";
答案 1 :(得分:0)
简单的答案是你可以使用setTimeout。 Reference(可能不是一个优雅的解决方案)
如果您正在等待某个事件发生然后处理,您可以使用回调来实现它。
答案 2 :(得分:0)
定义processing a link
。 “链接未处理”到底是什么意思?链接应该是做某事吗?如果是,那么你需要的延迟取决于链接应该做什么的完成。您可以使用setTimeout
设置计时器,但这是一种非常错误的做法。
答案 3 :(得分:0)
使用setTimeout
document.addEventListener('mousedown', function (e) {
setTimeout(function() {
bubbleDOM.style.visibility = 'hidden';
}, 3000); // for 3 seconds
}, false);
或者您可以使用setInterval进行循环检查
document.addEventListener('mousedown', function (e) {
var checkingInterval = setInterval(function() {
// any ways to check if the bubbleDom is loaded?
if (bubbleDOM != null) {
bubbleDOM.style.visibility = 'hidden';
// stop checking
clearInterval(checkingInterval);
}
}, 3000); // for 3 seconds
}, false);
答案 4 :(得分:0)
setTimeout可以延迟隐藏逻辑,但每次都可能无法正常工作,因为它取决于浏览器的速度,短暂的延迟时间可能不会触发链接点击
为什么不使用'click'事件?
document.addEventListener('click', function (e) {
bubbleDOM.style.visibility = 'hidden';
}, false);
或者你可以跳转听众功能:
document.addEventListener('mousedown', function (e) {
bubbleDOM.style.visibility = 'hidden';
window.location = e.target.href;
}, false);