Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

JavaScript document.createElement. Обработчики событий.

422
28 июня 2007 года
Dimarik
181 / / 12.02.2005
Здравствуйте!

Стоит следующая задача. Необходимо динамически создавать Element'ы, но чтобы у них были обработчики событий на onmouseover.
Причём функция обработчик имеет аргумент this. Пробовал так:

var el=document.createElement("div");
el.className="class1";
el.onmouseover=method_el(this);

Но далее при вызове этого обработчика происходит ошибка. В этой функции-обработчики вывзвается свойство style у объекта аргумента. И в этом месте происходит ошибка, пишет, что такого свойства нет. Что не так?
422
28 июня 2007 года
Dimarik
181 / / 12.02.2005
Ещё так попробовал
var el=document.createElement("div");
el.className="class1";
el.setAttribute("onmouseover", "method_el(this)");

Но это работает везде кроме Explorer :)
7.9K
28 июня 2007 года
vasa_c
191 / / 05.04.2007
 
Код:
var _this = this;
el.onmouseover = (function(e) {return method_el(_this);});
12
29 июня 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Dimarik

var el=document.createElement("div");
el.className="class1";
el.onmouseover=method_el(this);


Согдасно DOM API метод createElement лишь создает элемент. Но в дерево документа он не добавляется. А добавлять его следует методом appendChild.

Т.е. в конец должно быть что-то в духе

 
Код:
var body = documentGetElementById('body');
body.appendChild(el)

При этому в тега BODY аттрибут id установлен в body.
422
29 июня 2007 года
Dimarik
181 / / 12.02.2005
Этот пример не совсем работает
var _this = this;
el.onmouseover = (function(e) {return method_el(_this);});

Сделал так
el.onmouseover = (function(e) {return method_el(el);});

Вроде заработало везде.
7.9K
29 июня 2007 года
vasa_c
191 / / 05.04.2007
Ну, смотря на что this указывал.
Если вам нужно в method_el получить целевой объект, то он и так там будет доступен через this, ничего передавать не нужно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог