Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получить элемент, на котором была вызвана функция (https://javascript.ru/forum/misc/18186-poluchit-ehlement-na-kotorom-byla-vyzvana-funkciya.html)

walik 21.06.2011 20:32

Цитата:

Сообщение от monolithed
не только в FF.

А где еще ?

И вообще почему так сделано что нельзя получать событие через window ?

Kolyaj 21.06.2011 21:19

Цитата:

Сообщение от walik
А где еще ?

Везде, кроме IE.

Цитата:

Сообщение от walik
И вообще почему так сделано что нельзя получать событие через window ?

А почему так сделано, что можно получать событие через window?

walik 21.06.2011 21:30

Цитата:

Сообщение от Kolyaj
Везде, кроме IE.

Не правда, у меня в хроме, сафари и опере еще работает, поэтому кстати и предложил этот вариант))

Цитата:

Сообщение от Kolyaj
А почему так сделано, что можно получать событие через window?

Ну наверное для тех кто не хочет передавать объект в качестве параметра, а предпочитает получать объект из window.

person 22.06.2011 06:45

function(ev){
if(ev){var obj=ev.target;}//остальные
else{var obj=event.srcElement;};//IE
}

В функцию передавать ни чего не надо.
Вроде так.

Albert.bikeev 06.07.2013 01:05

Самый изящный и удобный способ - делегирование:

<input type="button" id="send-btn" class="btn" value="Отправить" name="btn">

<script>
var btns = document.querySelectAll("input[type='button']");
btns.addEventListener("click", function(event){
// Кроссбраузерное получение таргета
var target = e && e.target || window.event.srcElement;

// target - поле на котором произошёл клик

});
</script>

danik.js 06.07.2013 03:44

Albert.bikeev, ха ха, ну ты чудик. Если браузер поддерживает w3c метод addEventListener, то и событие будет передаваться в обработчик аргументом, как предписывает w3c. И для начала опробовал бы свой код. У NodeList нет метода addEventListener. Нужно обходить каждую кнопку и вешать обработчик.
И еще. А где тут делегирование? На какой элемент ты делегируешь обработку события нажатия по кнопке?

Оборачивай код в соответствующие теги.


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