这是我的代码:延迟一个javascript DOM风格变化
document.addEventListener('mousedown', function (e) {
bubbleDOM.style.visibility = 'hidden';
}, false);
我的问题是,我想处理环节上发生鼠标按下,这个环节是 内bubbleDOM。隐藏的通话非常快,链接不被处理。
我该如何推迟bubbleDOM.style.visibility = 'hidden'
?
这是我的代码:延迟一个javascript DOM风格变化
document.addEventListener('mousedown', function (e) {
bubbleDOM.style.visibility = 'hidden';
}, false);
我的问题是,我想处理环节上发生鼠标按下,这个环节是 内bubbleDOM。隐藏的通话非常快,链接不被处理。
我该如何推迟bubbleDOM.style.visibility = 'hidden'
?
可以使用的setTimeout耽误您的代码
setTimeout('your_code', time);
如:
setTimeout('bubbleDOM.style.visibility = 'hidden';', 1000);
否则,
,而不是延迟代码,也可以使用JavaScript
将用户重定向window.location = "http://www.google.com/";
简单的答案是你可以使用setTimeout。 Reference(可能不是一个优雅的解决方案)
如果您正在等待某个事件发生,然后进行处理,则可以使用回调来实现它。
定义processing a link
。 '你的链接没有被处理'是什么意思?该链接是否应该做些什么?如果是,那么你需要的延迟取决于链接应该完成的任何事情。你可以使用setTimeout
来设置一个计时器,但这将是一个非常错误的做法。
proccess意味着我们要到该网站又名“A HREF”是的这是不好的做法,使用设定的时间这里,所以我该怎么办? – Tom 2012-02-02 08:35:50
当用户点击bubbleCom时,你可以从javascript本身重定向用户,使用window.location将用户发送到该链接。参见我的答案。 – Neelam 2012-02-02 08:37:43
在要处理的链接的onclick事件中链接的过程,而不是父元素。这是由于在各种浏览器中实现的可能相冲突的事件顺序机制:http://www.quirksmode.org/js/events_order.html – 2012-02-02 08:51:18
使用的setTimeout
document.addEventListener('mousedown', function (e) {
setTimeout(function() {
bubbleDOM.style.visibility = 'hidden';
}, 3000); // for 3 seconds
}, false);
或者你可以使用setInterval的for循环检查
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);
的setTimeout能延缓隐藏的逻辑,但它可能无法正常工作,每次,因为它依赖于浏览器的速度,短延迟时间可能不会触发链接点击
为什么不使用'点击'事件?
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);
setTimeout(“bubbleDOM.style.visibility ='hidden';”,100);谢谢 – Tom 2012-02-02 08:40:36