2016-03-04 3 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

Это отлично поработало, спасибо. У меня изначально возникла проблема при использовании мышиного лезвия с документом, который использовал то, что я мог найти. Спасибо, что показал мне лучший способ сделать это. –

Смежные вопросы