Топ-100
Форум Академгородка г. Новосибирска
 

Здравствуйте, гость ( Вход | Регистрация )


  Платные темы только через пользователя РЕКЛАМА НА ФОРУМЕ   Электронная почта forum@academ.info   
 
Ответить в данную темуНачать новую тему
> Javascript: передача евента в функцию с параметром, или альтернативный способ блокировки bubbling
DieWorld
Отправлено: 06.03.2009, 12:24
+Цитировать сообщение


Активист
***

Группа: Опытный
Сообщений: 348
Регистрация: 02.07.2003
Из: диван
Пользователь №: 613




Суть проблемы:
есть такого плана код:
CODE

function foo1(par1)
{
...
}
function foo2(par2)
{
...
}
<div id = "box10" onClick="foo1(10)"> abcdef <div id="element10" onClick="foo2(10)"> 12345 </div> </div>


При нажатии на abcdef, вызывается обработчик foo1 с параметром 10, при нажатии на 12345 вызывается сначала foo2 с параметром 10, потом foo1 с тем же параметром. Надо прекратить распространение евента. Казалось бы, легко и просто сделать в нужном месте, например, event.stopPropagation(), но в данном случае как получить event в этих функциях я не знаю.

в принципе я представляю, что, наверное, можно убрать параметр 10, а потом внутри брать this, как-то доставать оттуда div id и оттуда брать число 10, а в освободившийся список входных параметров как раз будет автоматически отправляться event, но хочется как-то попроще.


--------------------
Лучше гореть в аду, чем мокнуть в раю
 
Перейти в начало страницы
milfoil
Отправлено: 06.03.2009, 13:38
+Цитировать сообщение


Опытный
****

Группа: Участник
Сообщений: 728
Регистрация: 02.07.2005
Пользователь №: 11680




Объявите функцию следующим образом
Код
function foo2(par2, e)
{
...
}


И вызовите её так
Код
foo2(10, event)


Таким образом внутри foo2 в переменной e будет нужное вам событие
 
Перейти в начало страницы
DieWorld
Отправлено: 06.03.2009, 14:46
+Цитировать сообщение


Активист
***

Группа: Опытный
Сообщений: 348
Регистрация: 02.07.2003
Из: диван
Пользователь №: 613




спасибо преогромное, всё работает.


--------------------
Лучше гореть в аду, чем мокнуть в раю
 
Перейти в начало страницы

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Удалить установленные форумом cookies · Отметить все сообщения прочитанными
RSS Текстовая версия