2015-10-01 21 views
5

Dire che ho un link come il seguente:Posso aggiungere l'attributo onmouseover per essere eseguito una sola volta?

<a class="link" href="www.rich.com" onmouseover="go(this)">Link</a>

C'è un modo per configurare l'evento onmouseover, chiamando go(this) per eseguire una sola volta pur utilizzando la linea onmouseover=<some code> notazione?Lo voglio definito in linea, non con una chiamata JavaScript.

Attualmente, ho questo, ma non è quello che voglio:

$(".link").one('mouseover', function(e) { 
    // do something 
}); 
+0

Devi essere un po 'più chiaro da cosa intendi eseguire una sola volta. Esegui una volta, letteralmente. Esegui una volta per hover. Esegui una volta per .link? Perché .one dovrebbe funzionare. – Mark

+0

@Mark eseguito una volta alla lettera. Come usare 'uno()'. –

+1

Solo curioso - perché preferisci farlo in questo modo? –

risposta

7

È possibile annullare l'onmouseover vincolante in seguito:

<a class="link" href="www.rich.com" onmouseover="go(this); this.onmouseover = null;">Link</a> 
+0

Molto lucido, grazie taxicala. – IfTrue

+0

Ottima risposta. Questo è molto più pulito di alternative. –

+0

Nessun problema. Felice di aiutare! – taxicala

-2

In alternativa si può fare qualcosa di simile:

var check = 0; 
$(".link").on('mouseover', function(e) { 
    if(check == 0){ 
     // do something 
     check = 1; 
    }else { 
     return false; 
    } 
}); 
-1

È possibile impostare una variabile che indica quando r è stato attivato o no ...

var triggered = false; 

$(".link").one('mouseover', function(e) { 
    // do something 
    if(!triggered) 
    { 
     triggered = true; 

     // and whatever else you want to do 
    } 

}); 
Problemi correlati