Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как поймать событие (https://javascript.ru/forum/events/48892-kak-pojjmat-sobytie.html)

PabloDiguerero 21.07.2014 10:37

Как поймать событие
 
Достался мне на переработку нескучный код. Смысл в следующем - предыдущий программист был, видимо, ярый фанат onclick'ов, поэтому в коде присутствует куча <a href="javascript:void(0);" onclick="functionname(argv1, argv2, argv3)">....
Вот этот вот functionname представлял собой кладбище костылей и подпорок строк в 350 длинной. Я переделал все это в стройную систему подпорок и костылей, но вылезла проблема - мои подпорки требуют event, либо объект на который кликнули. Само собой перелопачивать кучу кода мне банально лень. Реально ли решить сию проблему каким-нибудь не сильно костыльным способом?

PabloDiguerero 21.07.2014 10:47

нашел вот такую штуку
var evt = window.event || arguments.callee.caller.arguments[0]
Насколько это нормально?
Обнаружил, что некоторые окна открываются после аякс запроса - в event летит ajax(

Aetae 21.07.2014 11:19

Цитата:

Сообщение от PabloDiguerero (Сообщение 322012)
Насколько это нормально?(

Не слишком.

Для начала: зачем тебе event?

PabloDiguerero 21.07.2014 11:26

Такая концепция - при нажатии на кнопку появляется div (назовем его div1). На этом div'e может быть еще одна кнопка, которая вызывает еще один div (div2). При изменении контента в div2 должен обновляться div1 (т.к. это его предок). То есть event'ом я пытаюсь отловить связь предок -> потомок.

Aetae 21.07.2014 11:56

div'ы же не из воздуха появляются, их создаёт какая-то функция. Нормальные люди привязываются именно там.
Но конечно можно добавить ещё один костыль:
addEventListener('mouseup',function(e){window.event=e},false)
и использовать window.event.
Только смысла тогда в переделке одного кода на другой не вижу. Что там костыли, что тут.


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