Показать сообщение отдельно
  #1 (permalink)  
Старый 10.05.2014, 03:04
Новичок на форуме
Отправить личное сообщение для ronron Посмотреть профиль Найти все сообщения от ronron
 
Регистрация: 10.05.2014
Сообщений: 2

Не работает обработчик событий на добавленные элементы
Не срабатывает обработчик событий на добавленные с помощью appendTo() элементы из массива. Класс остается прежним "album", но из элементов нетронутым остается только один, который и продолжает работать. Остальные же элементы перестают реагировать на клик:

<div class="menuline">
    <div class="album" id="d"><a href="#">D</a></div>
    <div class="album" id="l"><a href="#">L</a></div>
    <div class="album"  id="p"><a href="#">P</a></div>
    <div class="album"  id="w"><a href="#">W</a></div>
    <div class="album"  id="s"><a href="#">S</a></div>
    <div class="album"  id="c"><a href="#">C</a></div>
        </div>




var albumLink = ["d", "l", "p", "w", "s", "c"];
function menuAction(id) {
        var newAlbum = [];
        var num = $.inArray(id, albumLink);
        for (i=0; i<albumLink.length; i++) {
            if (i !== num) {
                $("#" + albumLink[i]).fadeTo(200, 0);
               newAlbum.push($("#" + albumLink[i]).clone()); // тут добавляем элементы в массив
            }
        }

        for (var i=0; i<num; i++) {
            $("#" + albumLink[i]).addClass("psy");                 // меняем некоторые из элементов
            $("#" + albumLink[i]).removeClass("album");
            $("#" + albumLink[i]).removeAttr("id");
        }

        for (i=num+1; i<albumLink.length; i++) {
            $("#" + albumLink[i]).remove();                        // оставшиеся удаляем
        }

        for (i=0; i<newAlbum.length; i++) {
            newAlbum[i].appendTo(".menuline");                     // тут возвращаем их назад
            $(".album").eq(i+1).fadeOut();

            }
        var t = 1;
        if (t<6) {
            var timer = setInterval(function () {
                $(".album").eq(t).fadeIn()
                t++;
            }, 200);
        }
        else {
            clearInterval(timer);
        }
        }

 $(".album").on("click", function() {

        var id = this.id;

        menuAction(id);
});

Последний раз редактировалось ronron, 10.05.2014 в 03:07.
Ответить с цитированием