powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / создать узел DOM
10 сообщений из 10, страница 1 из 1
создать узел DOM
    #34561700
Alex_BBB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо с помощью JavaScript, создать контейнер div, с вызовом обработчика события onclick.

В php это делаю так:
Код: plaintext
echo "<div onclick=\"doLoad('addmap','".$map->name."')\">".$map->name."</div>\n";

Функция, doLoad(str1, str2) должна получить два параметра. Две строки:
-одна, 'addmap', статична.
-вторая задается переменной
Код: plaintext
var str2='someName';

Код: plaintext
1.
var newMenuItem = document.createElement('div');
newMenuItem.setAttribute('onclick',doLoad(...));

Что должно стоять на месте троеточия?
Спасибо.
...
Рейтинг: 0 / 0
создать узел DOM
    #34561804
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
var newMenuItem = document.createElement('div');
...
newMenuItem =SOMEBODY.appendChild(newMenuItem); // это важно, события могут потеряться после вставки
...
(function(s1,s2){  // это - магия
newMenuItem.onclick=function(){doLoad(s1,s2));
})(str1,str2) ; // и это тоже - магия. называется замыкание (closure)
...
Рейтинг: 0 / 0
создать узел DOM
    #34561843
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ksnk это - магия
...
Рейтинг: 0 / 0
создать узел DOM
    #34561880
Alex_BBB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так сделал:

Код: plaintext
1.
2.
3.
4.
5.
var newMenuItem = document.createElement('div');
var doload = "doLoad('addmap', '"+name_gm+"')";
newMenuItem.setAttribute('onclick', doload);
var newMenuText = document.createTextNode(name_gm);
newMenuItem.appendChild(newMenuText);
						document.getElementById('gm_admin_menu').appendChild(newMenuItem);
...
Рейтинг: 0 / 0
создать узел DOM
    #34561903
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то читал, что замыкания и безымянные функции вызывают утечку памяти в IE...

Alex_BBB
attachEvent
...
Рейтинг: 0 / 0
создать узел DOM
    #34562322
Alex_BBB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если делать так как я писал (повторюсь):

Код: plaintext
1.
2.
3.
4.
5.
6.
var newMenuItem = document.createElement('div');
var doload = "doLoad('addmap', '"+name_gm+"')";
newMenuItem.setAttribute('onclick', doload);
var newMenuText = document.createTextNode(name_gm);
newMenuItem.appendChild(newMenuText);

document.getElementById('gm_admin_menu').appendChild(newMenuItem);

То в FF и Opera, можно потом делать click и обработчик doLoad будет вызван, то в IE контейнер DIV создается, однако нажать на него нельзя...
...
Рейтинг: 0 / 0
создать узел DOM
    #34562339
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_BBBВот так сделал:

А с магией всё-таки красивей. =)
AntonariyГде-то читал, что замыкания и безымянные функции вызывают утечку памяти в IE...

я тоже читал. А потом понял, что без них не могу и забил:(
...
Рейтинг: 0 / 0
создать узел DOM
    #34562351
Alex_BBB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не врубаюсь в магию. напишите пожалуста поподробней.(и будет ли работать в IE)
...
Рейтинг: 0 / 0
создать узел DOM
    #34562386
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_BBBЯ не врубаюсь в магию. напишите пожалуста поподробней.(и будет ли работать в IE)
Будет, всегда ж можно попробовать. Иногда правда придётся использовать бубен (как по первой ссылке)
Код: plaintext
1.
2.
var newMenuItem = document.createElement('div');
newMenuItem =SOMEBODY.appendChild(newMenuItem);
newMenuItem.onclick=function(){doLoad("aa","bb")};

тут что-то писал
статья
тут есть что-то про утечку
ну и тут
...
Рейтинг: 0 / 0
создать узел DOM
    #34562462
Alex_BBB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LINUXER, спасибо пошел читать
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / создать узел DOM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]