AJAX добавление обработчика событий

casinolot

Гуру форума
Регистрация
21 Окт 2010
Сообщения
547
Реакции
87
вот обработчик
Код:
    $(".person .person-control p,.person .person-control p.meny").click(function(){   
            if($(this).attr("rel") != 'profil' && $(this).attr("rel") != 'close') {
                var $homeDiv = $(this).parent().parent().parent();   
                $homeDiv.addClass("active");
                if(!$homeDiv.is(".foto")) {
                    if(!$(this).is(".active")) {
                        $(".hidden-box").hide();
                        $(".person").removeClass("active");
                        $homeDiv.addClass("active");
                        $(".person .person-control a").removeClass("active");
                        $("div.v"+$(this).attr("rel"), $homeDiv).slideDown(100);         
                        $(this).addClass("active");
                    } else {                     
                        $("div.v"+$(this).attr("rel"), $homeDiv).hide();
                        $(this).removeClass("active");
                    }
                } else {
                    if(!$(this).is(".active")) {
                        $(".hidden-box").hide();
                        $(".person").removeClass("active");
                        $homeDiv.addClass("active");
                        $(".person .person-control a").removeClass("active");
                        $("div.v"+$(this).attr("rel"), $homeDiv).slideDown(100);         
                        $(this).addClass("active");
                    } else { 
                        $homeDiv.removeClass("active");
                        $("div.v"+$(this).attr("rel"), $homeDiv).hide();
                        $(this).removeClass("active");
                    }
                }
            }
            return true;
    });
Почему-то если добавлять после успешного ajax запроса на новые тэги этот обработчик, на старых тэгах прекращает работать
 
для навешивания обработчика на новые элементы применяются методы bind и live...
Код:
  $(".person .person-control p,.person .person-control p.meny").live("click", function(){......
 
live уже тоже не советуют.
Сейчас все обработчики сводят на $.on

Например $('div.content').on('click', 'a.button', function() { console.log('blablbalbal')});

Т.е. jquery будет отслеживать все 'a.button', в том числе и новые, которые находятся в div.content
 
Назад
Сверху