Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.09.2013, 20:07
Интересующийся
Отправить личное сообщение для webinsoul Посмотреть профиль Найти все сообщения от webinsoul
 
Регистрация: 20.08.2013
Сообщений: 21

Задержка setTimeout и mouseenter
Код
$(document).ready(function(){
	$(".annotation span").mouseenter(function() {
	$(this).next("em").animate({opacity: "show", top: "-70"}, "fast");	});


	$(".annotation span").mouseleave(function() {
	$(this).next("em").animate({opacity: "hide", top: "-70"}, "fast");	}); 
});


Нужно, чтоб выполнялся animate только при задержке курсора на ".annotation span" от 1 секунды. На сколько я понял, следует вставить setTimeout(). Пробовал - безрезультатно.
Ткните плз, носом

То есть, чтоб при случайном наведении не выполнялся "animate".
Ответить с цитированием
  #2 (permalink)  
Старый 04.09.2013, 20:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

webinsoul,
Реакция на нааведение мыши
Ответить с цитированием
  #3 (permalink)  
Старый 04.09.2013, 21:36
Интересующийся
Отправить личное сообщение для webinsoul Посмотреть профиль Найти все сообщения от webinsoul
 
Регистрация: 20.08.2013
Сообщений: 21

рони,
спасибо за ссылку. Подставил свои значения (скорей всего накосячил):

$(document).ready(function () {
var timer;
    $(".annotation span").mouseenter(function () {
        timer = window.setTimeout(function () {
		 $(this).next("em").stop(true, true).animate({opacity: "show", top: "-70"}, 100);
        }, 1000)



    }).mouseleave(function () {
        window.clearTimeout(timer)
         $(this).next("em").animate({opacity: "hide", top: "-40"}, 100);
    });
});



mouseleave работает, а mouseenter - нет. Подскажите где ошибка.
Ответить с цитированием
  #4 (permalink)  
Старый 04.09.2013, 21:46
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

$(".annotation span").mouseenter(function () {
        var th = $(this);
        timer = window.setTimeout(function () {
         th.next("em").stop(true, true).animate({opacity: "show", top: "-70"}, 100);
        }, 1000)
Ответить с цитированием
  #5 (permalink)  
Старый 04.09.2013, 21:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

webinsoul,
откуда таймеру знать что есть this? сохраните в переменной и в функции замените $(this)
$(document).ready(function () {
var timer;
    $(".annotation span").mouseenter(function () {
        var el =  $(this);
        timer = window.setTimeout(function () {
		 el.next("em").stop(true, true).animate({opacity: "show", top: "-70"}, 100);
        }, 1000)



    }).mouseleave(function () {
        window.clearTimeout(timer)
         $(this).next("em").animate({opacity: "hide", top: "-40"}, 100);
    });
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
setTimeout и переход на новую страницу Kubik129 Общие вопросы Javascript 3 03.02.2012 18:21
Реализация mouseenter Andrew17 jQuery 3 11.12.2011 03:21
Передача контекста через setTimeout decadent jQuery 3 10.02.2011 19:01
setTimeout в браузере IE и Opera leha66 Javascript под браузер 2 13.12.2010 13:02
setTimeout Воитель Общие вопросы Javascript 5 23.01.2009 10:36