[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: кроссбраузерное назначение событий
PiratXXX
Добрый вечер!

Вообщем все было отлично пока я не посмотрел, страничку в IE.

Вообщем суть такая: на js создаю элемент div, и аналогичным способом присваеваю ему событие

Elem.onclick = func();


дело вот в чем в opera, все работает, при нажатии выполняеться функция, а вот в ie, элемент создаеться, НО при нажатии на него функция не выполняеться?

заранне спасибо!



Спустя 33 минуты, 50 секунд (27.02.2011 - 13:35) nugle написал(а):
выложите код!

Спустя 4 минуты, 48 секунд (27.02.2011 - 13:39) PiratXXX написал(а):
nugle

function CreateElem(Parent, Name, Attrs, Text, Event) {
var Elem_Parent = document.getElementById(Parent);
var Elem = document.createElement(Name);
if(Attrs) {
for(Key in Attrs) {
if(Key == 'class') {
Elem.className = Attrs[Key];
}
else if(Key == 'id') {
Elem.id = Attrs[Key];
}
}
}

if(Event) {
for(Key in Event) {
if(Key == 'onMouseOver') {
Elem.onmouseover = Event[Key];
}
if(Key == 'onClick') {
Elem.onclick = Event[Key];
}
if(Key == 'onMouseOut') {
Elem.onmouseout = Event[Key];
}
}
}

if(Text) {
Elem.appendChild(document.createTextNode(Text));
}
Elem_Parent.appendChild(Elem);
}

CreateElem('SelectPlace', 'div', {'class': 'SelectTitle', 'id': 'SelectTitle'}, '- Не выбрана -', {'onMouseOver':'ShowElem("SelectBut")','onClick':'ShowElem("SelectCont")','onMouseOut':'CloseElem("SelectBut")'});

Спустя 11 часов, 25 минут, 7 секунд (28.02.2011 - 01:04) andyp написал(а):
так не будет работать не только в ИЕ. onclick нужно присваивать не строку.
Вот так будет работать:
Elem.onclick = function(){eval(Event[Key]);}; 

Спустя 15 часов, 8 минут, 12 секунд (28.02.2011 - 16:13) PiratXXX написал(а):
andyp

спасибо! ну блин я был почти близок. уже и находил за эти анонимный функции.

а вот за eval, не встричал.

это что какаято самая волшебная функция в js


_____________
http://flibro.com/
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.