Вопрос о функциях событий Javascript - PullRequest
0 голосов
/ 19 сентября 2011

Почему, когда я добавляю событие как функцию, как это:

function func(arg) 
{
arg.style.marginLeft = "65px";
}
window.onload = function() {
var test = document.getElementById("aaa");
test.onmouseover = func(test);
}

Это было выполнено немедленно (даже если я не наведу курсор на элемент).

Но это работает:

window.onload = function() {
var test = document.getElementById("aaa");
test.onmouseover = function() {
           test.style.marginLeft = "65px";
      }
}

1 Ответ

3 голосов
/ 19 сентября 2011

Вы устанавливаете для свойства "onmouseover" возвращаемое значение выражения вызова функции :

test.onmouseover = func(test);

То, что "func (test)" вызывает функцию "func () ", как и в любом другом коде.

Вместо этого вы можете сделать это:

test.onmouseover = func;

Это будет связывать обработчик событий и вызывать не" func () ", ане организует передачу дополнительного параметра. edit Ой, подождите, это просто сам элемент DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...