время ожидания при наведении - PullRequest
2 голосов
/ 03 июня 2009

Я пытаюсь использовать jquery hover, чтобы очистить один тайм-аут (cleartimeout) для заданной переменной (timer), а затем установить другой (settimeout), как только мышь покинет элемент. Есть идеи как это сделать?

Пока мой код (который не работает !!!!):

            $(function() {

            $('ul.contact').hover(function() {

            $(this).clearTimeout(timer).animate({ 'opacity' : 0.7});
            }, function() {
            $(this).setTimeout( function()
                            {
                            $('ul.contact').fadeOut('slow');
                            }, 8000);
                            });
            timer = setTimeout(function() {
                $('li#contact').removeClass('cur');
                $('li#$url').addClass('cur');
                }, 8625);


}); 

Ответы [ 4 ]

6 голосов
/ 03 июня 2009

setTimeout () и clearTimeout () являются функциями (глобального) объекта окна, поэтому они должны вызываться без объекта. В вашем примере удалите «$ (this)». перед вызовами setTimeout и clearTimeout

4 голосов
/ 03 июня 2009

Вы также не можете связать .animate() вызов от clearTimeout(), как вы пытаетесь.

2 голосов
/ 03 июня 2009

Может помочь плагин hoverIntent jQuery. Позволяет настроить чувствительность наведения мыши:

http://cherne.net/brian/resources/jquery.hoverIntent.html

... я подозреваю, что вы пытаетесь это сделать.

0 голосов
/ 03 июня 2009

Я понял, что не установил другую переменную для фактического элемента, который хотел сохранить отображаемым. Теперь установили другую переменную, и все отлично работает с новым кодом:

Большое спасибо за советы, хотя они также включены!

            $(function() {

            $('ul.contact').hover(function() {

            clearTimeout(display);
    clearTimeout(timer);
    $(this).css('display', 'block');
            }, function() {
            $(this).fadeOut('slow');
            $('li#contact').removeClass('cur');
            $('li#$url').addClass('cur');
            }); 

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...