Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   DOM и обработчики событий (https://javascript.ru/forum/events/16205-dom-i-obrabotchiki-sobytijj.html)

radmir4eg 30.03.2011 02:23

DOM и обработчики событий
 
Доброй ночи!
...
var newselect = document.createElement('select');
newselect.name = 'door' + i;
newselect.on...
...
Как повесить обработчик событий, при создании элемента ДОМ.

Заранее благодарен!

Matre 30.03.2011 04:34

newselect.onchange = function () { alert("change"); };

Skipp 30.03.2011 10:28

как я понимая вы создаёте их в цикле, если так, то не забывайте про замыкания

radmir4eg 30.03.2011 12:24

Цитата:

Сообщение от Skipp (Сообщение 98476)
как я понимая вы создаёте их в цикле, если так, то не забывайте про замыкания

Matre, ваш вариант работает, но у меня уже есть нужная функция.
Когда я подставляю её( newselect.onchange = changeElement();),
не работает, подскажите в чем проблема или я неправильно подставляю...

Skipp
с замыканием все нормально

рони 30.03.2011 12:28

Цитата:

Сообщение от radmir4eg
Когда я подставляю её( newselect.onchange = changeElement()

Круглые скобки уберите после названия функции.

gavnomaster 30.03.2011 13:35

В жопаскрипте функция это обьект. У нас присваивание => скобок не должно быть.

fit 31.03.2011 11:36

Тоже интересует, как можно добавить. Точнее добавить получилось, но почему-то в shBox() каждому сгенерированному P в onclick добавляется shBox('r10m21'). Что надо поправить?

function createVertical() {
  var totalCols = 20;
  var totalRows = 10;      
  for (var i=1; i<=totalRows; i++)  {          
  var row = document.getElementById('row'+i);
  newCol = document.createElement('p'); 
  newCol.id = 'r'+i+'m'+totalCols;
  newCol.className = 'emptbox';          
  id = 'r'+i+'m'+totalCols;
  newCol.onclick = function(){ shBox(newCol.id,'emptbox');};
  row.appendChild(newCol);  
  }
}

рони 31.03.2011 11:52

fit,
Пример ошибочного использования


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