2016-09-02 3 views
1

Я пытаюсь сделать одно из этих раздражающих всплывающих окон при выходе из браузера. Тем не менее, я хочу, чтобы событие было доступно через через определенное количество времени. Событие должно запускаться через определенное время. Я видел такие вещи, как delay и setTimeout, но я понятия не имею, как реализовать его в моем коде.Сделать событие JQuery доступным через определенное время

JavaScript:

$(document).on("mouseleave", function (event) { 
     if (event.pageY < 0) { 
      $(".leavemodal").fadeIn(600); 
     } 
    }); 
+0

здесь смотрите http://stackoverflow.com/questions/7317273/warn-user-before-leaving-web-page-with-unsaved-changes –

+0

Это не то, что я после того, как хотя , Я просто хочу, чтобы mouseleave на event.pageY был доступен через определенное количество времени – xSketchy0

ответ

2

Это не проверял, но, может быть, вы можете попробовать это.

$(document).ready(function() { 
    canRun = false; 
    waitPeriod = 1000;// waiting time 
    setTimeout(function() { canRun = true; }, waitPeriod); 

    $(document).on("mouseleave", function (event) { 
     if (!canRun) { 
      return false; 
     } 
     if (event.pageY < 0) { 
      $(".leavemodal").fadeIn(600); 
     } 
    }); 
}); 
0

Если вы хотите использовать setTimeout() вы можете сделать что-то вроде этого. Событие Click будет разрешено через 2 секунды после вас mouseleave элемента.

var click = false; 
 

 
$('.el').mouseleave(function() { 
 
    if (click == false) { 
 
    setTimeout(function() { 
 
     console.log('You can click now') 
 
     click = true; 
 
     $(this).click(function() { 
 
     console.log('click') 
 
     }) 
 
    }, 2000) 
 
    } 
 
})
.el { 
 
    width: 200px; 
 
    height: 200px; 
 
    background: black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="el"></div>

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