в javascript, как вы определяете текущее событие, если оно не передано как arg? - PullRequest
4 голосов
/ 23 сентября 2011

В произвольной функции javascript вы хотите определить восходящее событие.

Функция прослушивателя событий не пропустила событие и не выполняет текущую функцию. afaik, window.event является не WC3 и недоступно.

function listener(e) { subfunc(e.target); }

function subfunc( element) {
    // here I wish to know which if any event responsible for me being called
    var event = ?;
    switch( event.type ) { ... }
}

Как функция subfunc() определяет текущее событие?

(Прошу прощения, если вопрос задавался раньше - кажется, что это должно быть - но не может отследить его.)

Ответы [ 2 ]

2 голосов
/ 23 сентября 2011

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

function listener(e) { subfunc.call(this, e); }

function subfunc( e ) {
    var element = this; //<- 'this' points to your element, 'e.type' is event type
    switch( e.type ) { ... }
}

Также другой способ:

function listener(e) { subfunc.call(e, e.target); }

function subfunc( element ) {
    var event = this; //<- 'this' points to your event object
    switch( event.type ) { ... }
}
2 голосов
/ 23 сентября 2011

Это невозможно. Есть только одно свойство, доступ к которому можно получить другим надежным способом: event.target = this (при условии, что функция вызывается из области действия прослушивателя событий).

Объект события должен быть передан в subfunc.

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