2011-05-12 2 views
3

Je veux compter combien de temps, je souris sur un élément html.jquery count hover event

pour eample

lien

<a class="mylink">Check me Out !</a> 

jquery

jQuery('.mylink').hover(function(){ 

//what should i do here to count 
}); 

Merci à l'avance!

+1

Il est jQuery, pas JQuery –

+0

Oui,;) jquery est plus comme ... Français! : p –

+2

En deuxième lecture, pouvez-vous préciser si vous voulez compter combien de fois vous survolez un élément ou obtenir la durée pendant laquelle vous survolez l'élément? – DarthJDG

Répondre

6

Si vous voulez garder un compteur séparé pour chaque élément apparié procédez comme suit:

jquery('.mylink').mouseover(function(){ 
    var $this = $(this); 
    var count = parseInt($this.data('count'), 10) + 1; 
    $this.data('count', count); 
}); 

Ensuite, vous pouvez obtenir le nombre de chaque élément utilisant .

Editer: Correction d'une erreur stupide.

+0

+1: cela supprime le besoin d'une variable globale – Sylvain

+1

+1 solution agréable et propre. Peut-être que je suis stupide, mais n'avez-vous pas oublié d'ajouter «1» au compte à chaque fois? – kapa

+0

Lol, 2 upvotes et 4 heures plus tard, quelqu'un l'a remarqué. Merci. :) – DarthJDG

4
$(function() 
{ 
    var myCounter = 0; 
    $('.mylink').mouseover(function() 
    { 
     myCounter++; 
    }); 
}); 
0

appeler cette fonction ...

jquery('.mylink').hover(function(){ 

start(true) 
}); 


function start(isStarted, index){ 
if(!index){ 
index = 0; 
} 

if(isStarted) { 
started[index] = true; 
counter[index] =0; 

} 


if(started[index] && true) { 
counter[index] += 1; 
timer = setTimeout("start(false," + index + ")",1000); 
} 

} 
1

Si vous voulez savoir combien de secondes vous avez été planant au-dessus d'un élément essayez ceci:

$('.mylink').hover(
    //mouseover handler 
    function(){ 
     //record the current time 
     $(this).data('start', new Date().getTime()); 
    }, 
    //mouseout handler 
    function(){ 
     //grab the end time 
     var end = new Date().getTime(); 
     //calculate the difference in seconds 
     var hoverTime = (end - $(this).data('start'))/1000; 
     //use the result 
     alert(hoverTime.toFixed(2)); 
    } 
); 
+0

Merci .. C'est cool – Gowri