mam taki kod:
for (var i=1; i<=31; i++) { var li = new Element("li"); li.innerHTML = i; if (i <= months[(month-1)][1]) { li.onclick = function() { this.setDate(month, i); // tutaj }.bind(this); if (i == this.day && month == this.month) { li.set("class", "current"); } } else { li.set("class", "disabled"); } $("calendar_days").appendChild(li); }
Nie bardzo wiem jak dobrać się do wartości zmiennej i w kolejnych iteracjach. Metoda setDate po prostu alertuje przesłane parametry i month przesyłany jest poprawnie, natomiast i zawsze wynosi 32 (wartość wyjścia z pętli). Rozwiązanie pewnie jest banalne, jednak nieco mnie przerasta

Dzięki za pomoc,
pion
// EDIT:
Problem lekko obszedłem dodając osobną metodę i przekazując jej odpowiednie parametry. Ważne, że działa.
setDays: function(month) { $("calendar_days").innerHTML = ""; for (var i=1; i<=31; i++) { var li = new Element("li"); li.innerHTML = i;; if (i <= months[(month-1)][1]) { this.addOnClickForLi(li, month, i); if (i == this.day && month == this.month) { li.set("class", "current"); } } else { li.set("class", "disabled"); } $("calendar_days").appendChild(li); } }, addOnClickForLi: function(li, month, day) { li.onclick = function() { this.setDate(month, day); }.bind(this); },