2015-10-01 3 views
5

Скажет, у меня есть ссылка, как следующее:Можно ли добавить атрибут onmouseover только один раз?

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

Есть ли способ настроить onmouseover события, вызывая go(this) запустить только один раз в том же время, используя встроенный onmouseover=<some code> обозначения?Я хочу, чтобы он был определен inline, а не с вызовом JavaScript.

В настоящее время у меня есть, но это не то, что я хочу:

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

Вам нужно быть немного более понятным, что вы имеете в виду только один раз. Бегите один раз, буквально. Выполняйте один раз для зависания. Выполнить один раз на .link? Потому что .one должен работать. – Mark

+0

@Mark запускается один раз буквально. Подобно использованию 'one()'. –

+1

Просто любопытно - почему вы предпочитаете делать это так? –

ответ

7

Вы можете свести на нет onmouseover связывания впоследствии:

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

Очень гладкий, спасибо такси. – IfTrue

+0

Отличный ответ. Это намного чище, чем альтернативы. –

+0

Нет проблем. Рад помочь! – taxicala

-2

В качестве альтернативы вы можете сделать что-то вроде этого:

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

Вы можете установить var, который указывает на то, что r он был вызван или нет ...

var triggered = false; 

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

     // and whatever else you want to do 
    } 

}); 
Смежные вопросы