2012-04-18 2 views
0

Я пытаюсь сделать слайдер изображения. Теперь я получил основную часть слайдера - единственное, что ползунок автоматически отображает новое изображение каждые 5 секунд (уже построено), но как только пользователь наводит слайдер-меню, 5-секундный таймер не останавливается ,jQuery выполнить действие, если пользователь не зависал div в течение 5 секунд

Это мой код слайдера;

var index = $(this).parent("li").index(); 

     var item_y = $(this).parent("li").offset().top; 
     var item_x = $(this).parent("li").offset().left; 

     $("#slider li a").each(function(){ 
      $(this).removeClass("active"); 
      Cufon.refresh(); 
     }); 

     $(this).addClass("active"); 

     $("#slider_arrow").css({ 
      'top' : item_y, 
      'left' : item_x-109 
     }); 

     $("#slider_image li").hide().each(function(i,v){ 
      if (i == index) { 
       $(this).fadeIn("medium"); 
      } 
     }); 

     Cufon.refresh(); 

Это на самом деле действие - on hover - action. Ниже приведен код действия, который происходит каждые 5 секунд.

setInterval(function(){ 

     var current_index = $("#slider li a.active").parent("li").index(); 

     var new_index = $("#slider li").eq((current_index+1)); 

     if (new_index.length > 0) 
     { 
      new_index.children("a").mouseover(); 
     } 
     else 
     { 
      $("#slider li:first-child").children("a").mouseover(); 
     } 

    }, 5000); 

Так что я хочу, чтобы сбросить 5 секундный интервал, как только пользователь касается пункта из меню #slider li.

Как я могу это достичь?

Благодаря

ответ

0

Вы должны хранить интервал ручки, так что вы можете вызвать clearInterval() при необходимости.

var myinterval = setInterval(
    .... 
, 5000); 

$('#slider li').mouseenter(function() { 
    if(myinterval) clearInterval(myInterval); 
}; 
Смежные вопросы