jquery count hover event - PullRequest
       19

jquery count hover event

3 голосов
/ 12 мая 2011

Я хочу посчитать, сколько времени я наведу указатель мыши на элемент HTML.

для образца

ссылка

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

JQuery

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

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

Заранее спасибо!

Ответы [ 4 ]

6 голосов
/ 12 мая 2011

Если вы хотите сохранить отдельный счетчик для каждого соответствующего элемента, сделайте следующее:

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

Затем вы можете получить счетчик для каждого элемента, используя $(selector).data('count').

Редактировать:Исправлена ​​глупая ошибка.

4 голосов
/ 12 мая 2011
$(function()
{
    var myCounter = 0;
    $('.mylink').mouseover(function()
    {
        myCounter++;
    });
});
1 голос
/ 12 мая 2011

Если вы хотите узнать, сколько секунд вы зависли над элементом, попробуйте следующее:

$('.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 голосов
/ 12 мая 2011

вызвать эту функцию ...

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);
 }

} 
...