2015-10-01 7 views
5

Say mam linka tak:Czy mogę dodać atrybut onmouseover do uruchomienia tylko raz?

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

Czy istnieje sposób, aby skonfigurować zdarzenia onmouseover, nazywając go(this) uruchomić tylko jeden raz jednocześnie przy użyciu inline onmouseover=<some code> notacji?Chcę go zdefiniować w linii, nie za pomocą wywołania JavaScript.

Obecnie mam to, ale to nie jest to, co chcę:

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

Musisz być trochę bardziej przejrzysty, przez co rozumiesz, tylko raz. Uruchom raz, dosłownie. Uruchom raz za najechanie. Uruchom raz na .link? Ponieważ .one powinno działać. – Mark

+0

@Mark uruchom raz dosłownie. Podobnie jak przy użyciu 'one()'. –

+1

Po prostu ciekawy - dlaczego wolisz to robić w ten sposób? –

Odpowiedz

7

można unieważnić onmouseover wiążące potem:

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

Bardzo łatwe, dzięki taxicala. – IfTrue

+0

Świetna odpowiedź. To jest o wiele czystsze niż alternatywy. –

+0

Bez problemu. Miło, że mogłem pomóc! – taxicala

-2

Alternatywnie można zrobić coś takiego:

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

Można ustawić var, który wskazuje, kiedy r został wywołany lub nie ...

var triggered = false; 

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

     // and whatever else you want to do 
    } 

});