attachEvent и получение объекта this
От: DSD Россия http://911.ru/cv
Дата: 17.01.08 09:52
Оценка:
Всем привет.
Можно ли как-то в функции-обработчике получить объект события не с помощью event.srcElement?

т.е. есть к примеру ситуация: создано некоторое количество элементов(например ячейки таблицы), к которым приаттачено событие onclick:

function do_cell_click() {
   var obj=event.srcElement;
   alert(obj.cellIndex);
}
...
   var oCell = document.createElement("TD");
   oCell.attachEvent('onclick', do_cell_click);
...



так вот. получение ячейки через event.srcElement не катит, т.к. таблица может функцией из этого окна рисоваться совершенно в другом окне(например в новом окне для печати), и в новом окне прописанное в хендлере window.event.srcElement уже может не прокатить, ибо сработает в первом окне(там, где тело самой функции прописано). ну в общем такие грабли с глобальным контекстом...

знать бы саму ячейку — можно было бы и event достать: cell.ownerDocument.parentWindow.event

this в таком обработчике тоже не прокатывает.

что делать?
--
DSD
Re: attachEvent и получение объекта this
От: AKS.  
Дата: 17.01.08 10:02
Оценка:
Здравствуйте, DSD, Вы писали:

DSD> и в новом окне прописанное в хендлере window.event.srcElement уже может не прокатить, ибо сработает в первом окне(там, где тело самой функции прописано).


window.event будет создан там, где произойдет событие. А вот функция из другого окна, если она не определена в данном окне, работать не будет. Каждое окно — это должен быть новый контекст.
Re[2]: attachEvent и получение объекта this
От: DSD Россия http://911.ru/cv
Дата: 17.01.08 10:15
Оценка:
Здравствуйте, AKS., Вы писали:

AKS>А вот функция из другого окна, если она не определена в данном окне, работать не будет.

будет, пока не исчезнет окно, в котором она определена.

AKS>Каждое окно — это должен быть новый контекст.

не должен, а желательно. чтобы не было проблем при уничтожения окна, в отором определена функция. в моем случае это безопасно, т.к. новое окно — модальное.

P.S. забыл указать, вопрос IE Only. другие браузеры не интересуют, так что при ответах с кроссплатформенностью можете особо не заморачиваться )
--
DSD
Re: attachEvent и получение объекта this
От: DSD Россия http://911.ru/cv
Дата: 17.01.08 10:38
Оценка:
Здравствуйте, DSD, Вы писали:

Все. всем спасибо. мой вопрос решился банально:
function do_cell_click(e) {
   var obj=e.srcElement;
   alert(obj.cellIndex);
}
...
   var oCell = document.createElement("TD");
   oCell.attachEvent('onclick', do_cell_click);
...


первым параметром в функцию-обработчик прилетает необходимый правильный event.
--
DSD
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.