← Javascript

Eventos de Tempo

Lida 2745 vezes

Offline

Pedro Magalhães 
Membro
Mensagens 397 Gostos 0
Troféus totais: 23
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts

Boas! Estou aqui com uma situação em que preciso de um contador em javascript.

Preciso que o selector xpto seja mostrado apenas quando o utilizador está obrigatoriamente com o rato por cima do $(this) durante x segundos. Aqui está o jquery:

Código: [Seleccione]
$(this).mouseover(function(){
   xpto.show();
}).mousemove(function(){

}).mouseout(function(){
   xpto.hide();
});

Já vi algumas coisas na net, mas para disparar algo ao fim de x segundos. Ou seja, um delay, no entanto não é isso que se pretende, e sim a necessidade de o utilizador estar com o rato por cima do selector durante x segundos.

Agradeço qualquer ajuda! Cumprs.
Offline

Pedro Magalhães 
Membro
Mensagens 397 Gostos 0
Troféus totais: 23
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts

Aparentemente já funciona...

Código: [Seleccione]
$(this).mouseover(function(){

$segundos = 0;
$timer = 0;
contador();

function contador(){

$segundos = setTimeout(function() {
contador();
}, 1000);

$timer = $timer + 1;

if($timer == 2){
// o codigo vai aqui...
clearTimeout($segundos);
}

}

}).mousemove(function(kmouse){

if($timer == 2){

// o codigo vai aqui...
clearTimeout($segundos);

}

}).mouseout(function(){

clearTimeout($segundos);

});

O objectivo era simplesmente abrir um tooltip ao fim de 2 segundos, ou mesmo quando o rato esta por cima do link a mexer-se mais que 2 segundos, e fecha obviamente quando sai da area do link...