Показать сообщение отдельно
  #1 (permalink)  
Старый 25.05.2015, 17:24
Аспирант
Отправить личное сообщение для inflexible Посмотреть профиль Найти все сообщения от inflexible
 
Регистрация: 25.05.2015
Сообщений: 34

Неправильно срабатывает обработчик событий
В общем не могу разобраться в чем косяк!
В общем при первом нажатии medals.click все работает отлично, при втором medals.click неправильно работает обработчик rightButtonScroll.click... срабатывает сразу несколько раз и выдает последний результат!

var medals = $(".medalBlock a");
var sportsmen = [medalists.Gold, medalists.Silver, medalists.Bronse];
var num, medalNum;

medals.click(function() {
    
    num = 0;

    if (this === medals[0] ) { medalNum = 0; }
    if (this === medals[1] ) { medalNum = 1; }
    if (this === medals[2] ) { medalNum = 2; }
  
    rotateSportsmenList();

    rightButtonScroll.click(function() {     
        if ((num+1) < sportsmen[medalNum].length) { 
            num++; 
            rotateSportsmenList();
        }
    });

    leftButtonScroll.click(function() {     
        if (num > 0) { 
            num--; 
            rotateSportsmenList(); 
        }
    });

    function rotateSportsmenList(){
        statusScroll.text(num+1 + " из " + sportsmen[medalNum].length);
        nameSportsmenBlock.html(sportsmen[medalNum][num].name);
        $(".sportsmenImgBlock a").css({background: "url("+sportsmen[medalNum][num].imagesURL +") no-repeat"});
        sportsmenBiographyBlock.text(sportsmen[medalNum][num].biography);
    }

});



кстати, раз уже спрашиваю, то почему-то не работает конструкция для данного когда:

for (var i = 0; i < medals.length; i++) {
    (function(k) {
        medals[k].click(function(e) {
         
        });
    })(i);
}


только давайте без мата, и без тупых советов типа "иди еще раз прочитай главу о замыканиях"! если нету желания помочь - то иди себе мимо с Богом!)
Ответить с цитированием