2016-03-04 40 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與文件,使用我能找到的。感謝您向我展示了一個更好的方法來做到這一點。 –