Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как вызвать функцию в цикле??? (https://javascript.ru/forum/events/46106-kak-vyzvat-funkciyu-v-cikle.html)

SA1992 28.03.2014 15:03

Как вызвать функцию в цикле???
 
var circle = {};
		function clickCircle(a) {
			a.style.background = "#b00";
		}
		for (var i = 1; i < 11; i++) {
			circle[i] = document.getElementById("circle" + i);
			circle[i].onclick = function() {
				clickCircle(this);
			}
		}

<div id="circle3"></div>
</body>
</html>

Код:

#circle3 {
        background: #000;
        width: 200px;
        height: 200px;
        border-radius: 50%;
}

Подскажите пожалуйста почему не вызывается функция???

ksa 28.03.2014 15:18

Цитата:

Сообщение от SA1992
Как вызвать функцию в цикле?

Вопрос изначально не верен...

Как "навесить" обработку события - будет более кстати.
Как вариант...
obj.onclick=(function (Obj){
   return function (){
      clickCircle(Obj);
   };
})(obj)

danik.js 28.03.2014 15:25

Че за нахер? Зачем пропрасывать элемент? Он же и без того будет проброшен браузером как this!
var circle = {};
        function clickCircle() {
            this.style.background = "#b00";
        }
        for (var i = 1; i < 11; i++) {
            circle[i] = document.getElementById("circle" + i);
            circle[i].onclick = clickCircle;
        }

И все. И не надо плодить 11 одинаковых функций-копий. Это же глупо по меньшей мере )

SA1992 28.03.2014 15:33

не сработало, то что Вы написали :(

SA1992 28.03.2014 15:43

а нет, все работает , извините, всем спасибо)


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