Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как передать параметр? (https://javascript.ru/forum/events/10003-kak-peredat-parametr.html)

greatilya 15.06.2010 10:56

Как передать параметр?
 
Имеется функция №1 для отлова позиции указателя:
function getMouseXY(e) {
if (IE) {
	l = event.clientX + document.body.scrollLeft;
	t = event.clientY + document.body.scrollTop;
}
else {
	l = e.pageX;
	t = e.pageY;
}
ns_tt.style.left = l + "px";
ns_tt.style.top = t + "px";
return true
}


Имеется функция №2 для отображения элемента:
function AreaOver(desc)
{
	AddTT(desc);
	tm = 60;
}

которая вызывается следующим образом:
onMouseOver='AreaOver("текст")'


Не могу понять как мне сделать вызов функции №1 из функции №2. Как и какие правильно передать параметры?
Спасибо.

Skipp 15.06.2010 10:59

во первых так не правильно.
onMouseOver=function(){AreaOver("текст")};
Во вторых первая функция сама вызываться не будет.

Octane 15.06.2010 11:01

<… onmouseover="AreaOver('текст', event)">…</…>

function AreaOver(desc, e) {
    …

    getMouseXY(e)

    …
}

Skipp 15.06.2010 11:04

Octane,
а разьве event не первым должен быть при вызове?

Kolyaj 15.06.2010 11:10

Цитата:

Сообщение от Skipp
а разьве event не первым должен быть при вызове?

Кому должен?

Skipp 15.06.2010 11:11

Kolyaj,
так
<… onmouseover="AreaOver(event, 'текст')">…</…>
а не так
<… onmouseover="AreaOver('текст', event)">…</…>

Octane 15.06.2010 11:12

Из строкового значения атрибута браузер сам создаст анонимную функцию:

function () { AreaOver(…) }


и в её локальном контексте будет ссылка event, которую уже можно передавать каким угодно по счету аргументом в вызываемые функции.

<span onclick="alert(event.type)">Test</span>

greatilya 15.06.2010 11:26

:blink: меня не было 30 минут, а уже столько помощников )))))

Skipp 15.06.2010 11:31

Octane,
Дааа, что-то я затупил:)

Kolyaj 15.06.2010 11:32

Цитата:

Сообщение от greatilya
меня не было 30 минут, а уже столько помощников )))))

Про тебя уж забыли все :)


Часовой пояс GMT +3, время: 18:23.