Witam,
mam taki kod:
  1. for (var i=1; i<=31; i++) {
  2. var li = new Element("li");
  3. li.innerHTML = i;
  4.  
  5. if (i <= months[(month-1)][1]) {
  6. li.onclick = function() {
  7. this.setDate(month, i); // tutaj
  8. }.bind(this);
  9.  
  10. if (i == this.day && month == this.month) {
  11. li.set("class", "current");
  12. }
  13. }
  14. else {
  15. li.set("class", "disabled");
  16. }
  17.  
  18. $("calendar_days").appendChild(li);
  19. }

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 tongue.gif

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.
  1. setDays: function(month) {
  2. $("calendar_days").innerHTML = "";
  3.  
  4. for (var i=1; i<=31; i++) {
  5. var li = new Element("li");
  6. li.innerHTML = i;;
  7.  
  8. if (i <= months[(month-1)][1]) {
  9. this.addOnClickForLi(li, month, i);
  10.  
  11. if (i == this.day && month == this.month) {
  12. li.set("class", "current");
  13. }
  14. }
  15. else {
  16. li.set("class", "disabled");
  17. }
  18.  
  19. $("calendar_days").appendChild(li);
  20. }
  21. },
  22.  
  23. addOnClickForLi: function(li, month, day) {
  24. li.onclick = function() {
  25. this.setDate(month, day);
  26. }.bind(this);
  27. },