Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   проблема с событием (https://javascript.ru/forum/events/12753-problema-s-sobytiem.html)

Игорь87 01.11.2010 18:07

проблема с событием
 
<html>
    <head>
    </head>
        <body>
            <script>
var b=document.body;
	     for(var i=0;i<10;i++){
	         l=document.createElement('input');
	         l.type = 'submit';
	         l.value=i;
	         b.appendChild(l);
	         l.onclick=function(){alert(i)}
	     }

</script>
    </body>
</html>

Здравствуйте!Возникла проблема с "вешанием" события!Вот в примере выше событие вешается на динамически созданные инпуты .При нажатии на созданные кнопки срабатывает алерт с номером инпута,но почему то номер всегда "10",a хотелось бы присвоить каждому инпуту свой номер.Ну я понял что в последней интерации событие вешается на все объекты "l"...Пробывал через массив "l[i]",тоже ничего не выходит...Ну вопрос новичка,а все же как бы решить проблему по элегантнее?Всем спасибо!

2de 01.11.2010 18:11

Вам сюда http://javascript.ru/basic/closure

Игорь87 01.11.2010 18:30

Спасибо!Все заработало!Но что-то ужасная конструкция с этим замыканием получается, да и что-то не догоняю,буду разбираться!Нет более понятнее языка чем PHP...


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