2010-09-14 2 views
0
$("#notification").slideDown("slow").delay(2000).slideUp("slow"); 

.. работает, но я хочу добавить условие, так что если #notification зависнет, таймер/задержка остановится до мышки. Затем При нажатии мыши таймер запускается, а затем, в конце концов, элемент скрыт (если только он не зависает снова).Reset on Hover (jQuery)

Спасибо!

+0

Когда происходит событие slideDown элемента прямо сейчас? На hover()? document.ready()? – Marko

+0

Его основано на файле cookie, если cookie не найден, slidedown ... – 3zzy

+0

Способ, которым вы его описываете, теоретически, если вы наведете курсор в течение 1999 года, таймер остановится, а затем, когда вы снова нажмете налево, останется только 1 миллисекунда, прежде чем он снова прячется , Это необходимо? Потому что было бы намного проще просто сбросить таймер при наведении курсора :) –

ответ

2

Если я правильно вас понимаю, вы хотите остановить задержку/анимацию, если вы наведете элемент?

Использование clearQueue() для этого

$(document).ready(function() { 
    if(cookieIsPresent) { 
     $("#notification").hover(function() { 
      $(this).stop(true, true).clearQueue(); // You might not need to use clearQueue() but test it out 
     }, function() { 
      $(this).delay(2000).slideUp("slow"); 
     }).slideDown("slow").delay(2000).slideUp("slow"); 
    } 
}); 
+0

erm..после того, как все это выглядит со скольжением/слайдом и задержкой тоже? – 3zzy

+0

Hi @Nimbuz - см. Мое редактирование – Marko

+0

Отлично. Спасибо, сэр! ;) – 3zzy

0

Попробуйте обработку события OnMouseOver (не OnMouseHover).

+0

Вы могли бы попробовать добавить немного больше усилий в ответ. Постскриптум Нет события onmousehover. – Marko

+0

Пропущено событие. –