Отключение Javascript при событии Mouseleave

#javascript #jquery #html #css

#javascript #jquery #HTML #css

Вопрос:

У меня есть div, который появляется, когда пользовательская мышь покидает документ с опросом о моем сайте.

Я не хочу просить их проводить опрос, если они уберут мышь в первые пару минут во время просмотра, поэтому мне было интересно, могу ли я установить тайм-аут / режим ожидания, когда активируется эта функция mouseleave.

Вот мой код без тайм-аута:

         $(document).mouseleave(function () {
        document.getElementById("Overlay1").style.display = "";
        });
  

Большое спасибо!

Ответ №1:

Вы можете использовать window.setTimeout для включения функции через определенное время.

Пример:

     window.setTimeout(function(){
    $(document).mouseleave(function () {
            console.log('mouse leave');
            document.getElementById("Overlay1").style.display = "";
            });
        console.log('initiated');
    },5000);
  

Комментарии:

1. Извините, я не слишком хорош в javascript, я поместил ваш код выше своего, но, похоже, это не работает.

Ответ №2:

вы могли бы вызвать ту же функцию, инкапсулированную в setTimeout вызов функции :

  $(document).mouseleave(function() {
    var seconds = 3;

    //execute the function in 3 seconds
    setTimeout(function(){
        document.getElementById("Overlay1").style.display = "";
    },seconds*1000);
 });
  

Комментарии:

1. Я пытался, но, похоже, это не отображается даже через 3 секунды, и dreamweaver сообщает, что в строке есть синтаксическая ошибка: setTimeout(функция(){

2. извините, у меня была опечатка: D «функция» вместо «function». см. редактирование

3. Ах, большое спасибо, работает, но он продолжает часто всплывать, пример с другими плакатами работает отлично, хотя спасибо за помощь!!