Стандартный способ получения информации об элементе, вызвавшем конкретное событие - PullRequest
0 голосов
/ 26 марта 2012

Если HTML имеет вид:

<a href="javascript:void(0)" id="link">Click Me</a>

и я установил eventHandler для click как

ele.addEventListener('click', clickme, false);

Какой довольно стандартный способ получения значения ele в обработчике.

Мне удалось получить значение ele в Chrome с помощью: (рабочий пример - http://jsfiddle.net/hy5Pz/4/)

function clickme(e){
  var ele = e.toElement;
  ele.innerText = "I got clicked"; 
}

и в Firefox с помощью: (рабочий пример - http://jsfiddle.net/hy5Pz/3/)

function clickme(e){
  var ele = e.rangeParent;
  ele.data="I got clicked";
}

Я новичок в javascript, поэтому я хочу знать, существует ли довольно стандартный способ использования этого кода между пользователями.

Ответы [ 2 ]

2 голосов
/ 26 марта 2012

Я считаю,

var ele = e.currentTarget || e.srcElement;

Будет работать в большинстве браузеров.Сначала он пытается использовать e.target, а если он не найден, вместо него используйте e.srcElement.e.target используется в хороших браузерах, e.srcElement в IE.

1 голос
/ 26 марта 2012

если вы используете addEventListener, this будет элементом, к которому изначально было привязано событие.e.target будет элементом, который вызвал событие.Если вы изменили разметку на:

<a href="#" id="link">
  <span>Click Me</span>
</a>

e.target будет span, а не a.

...