2016-03-04 37 views
0

我有一个函数和事件,当鼠标离开窗口时触发。每次鼠标离开时都会触发。延迟和限制JS函数

我想延迟这个运行,所以我们有一个10秒的时间,当这个函数不能在页面加载时运行。我也想限制这个,所以它只发生在页面上一次。

我怎么会去吗?

function addEvent(obj, evt, fn) { 
    if (obj.addEventListener) { 
     obj.addEventListener(evt, fn, false); 
    } 
    else if (obj.attachEvent) { 
     obj.attachEvent("on" + evt, fn); 
    } 
} 

addEvent(document, 'mouseout', function(evt) { 
    if (evt.toElement == null && evt.relatedTarget == null) { 
     jQuery('.about-us-video').one().magnificPopup('open'); 
    } 
}); 
+1

'的setTimeout()'和解除绑定的处理程序中,因此只跑了一次。 – alex

+1

为什么要创建自己的'addEvent'函数,它使用jQuery? – adeneo

回答

0

您可以使用超时

setTimeout(function() { 
    $(document).one('mouseleave', function() { 
     $('.about-us-video').magnificPopup('open'); 
    }); 
}, 10000); 
+0

这很好,谢谢。我最初有一个问题,当使用mouseleave与文件,使用我能找到的。感谢您向我展示了一个更好的方法来做到这一点。 –