2010-10-19 21 views
13

Czy istnieje rozwiązanie JavaScript lub jQuery do wielokrotnego uruchamiania funkcji (po setTimeout), gdy mysz znajduje się nad obiektem DOM? W przeciwnym razie, czy jest JavaScript "czy podczas mouseover" (lub "czy mouseover")?"Jeśli najechanie kursorem myszy" lub "wykonaj podczas gdy najechanie kursorem myszy" w JavaScript/jQuery

$('someObject').bind('mouseover', function() { 

     //Do the following while mouseover 
     $('someOtherObject').css('margin-left',adjustedLeft + 'px'); 
     setTimeout(/*do it again*/,25); 

    }); 

Odpowiedz

38
$('someObject').on('mouseenter', function() { 
    this.iid = setInterval(function() { 
     // do something   
    }, 25); 
}).on('mouseleave', function(){ 
    this.iid && clearInterval(this.iid); 
}); 

Example Look here

+0

+1, starałem się napisać wyjaśnienie tego .. –

+0

+1 Jasne i proste. – jensgram

+0

To fajne! Świetny przykład! – Kyle

0

Chciałbym rozwiązać ten problem za pomocą zdarzenia onmouseout. Uruchom wszystko, co zamierzałeś zrobić, gdy wskaźnik myszy znajduje się nad określonym komponentem zdarzenia mouseover. Po wystąpieniu zdarzenia onmouseout zatrzymam go.

0

użyć nowego stylu powiązania z jQuery.

 
$(el).bind({ 
'mouseenter': function(){console.log('Mouse over');}, 
'mouseleave': function(){console.log('Mouse leave');} 
}); 
0

wiem, że to jest trochę stary, ale myślę, że właściwa funkcja jest już w JavaScript, onmousemove właśnie to robi.

Powiązane problemy