Задать вопрос
  • Проблема с кодом (слайдер для комментариев)?

    Если внимательно посмотреть код слайдера, то:
    1. Если 1-раз вызывать в виджетах, то код будет работать корректно, когда у Вас на сайте появится больше 5 комментариев, так как блок добавляющий комментарий, захардкожен в анимацию 5-го по счету
    $('#listticker ul').find("li:eq(4)").animate({opacity: "0"}, "800", function() {
                    $('#listticker ul').prepend(last);
                    $('#listticker li:first').css({opacity: "0"}).slideDown(function(){
                           $(this).css({opacity: "1"});
                    });
                })
    элемента, у вас же из 5-ти, после удаления последнего остается только 4-е элемента. Вот и получается что только удаляется, но не добавляется..
    2. Если 2 раза вызывать в виджетах - то вообще не стоит его два раза вызывать на одной странице.. плагин написан достаточно криво,.. весь js завязан на id элемента #listticker, который должен быть на странице _один_, иначе jQuery будет вести себя не так как Вы этого ожидаете. Как именно - надо разбираться дополнительно, но скорее всего, все будет работать только для первого блока (того что выше к началу страницы, если смотреть в html коде), либо же для множества элементов двух блоков с #listticker. А первый начинает работать только потому, что из 5-ти фактических комментариев у Вас уже получается 10-ять, ну и функция по добавлению комментария, на анимации 5-го элемента, начинает работать.

    Попробовать починить виджет для работы и с 5-ю комментариями, можно заменив блок
    $('#listticker ul').find("li:eq(4)").animate({opacity: "0"}, "800", function() {
                    $('#listticker ul').prepend(last);
                    $('#listticker li:first').css({opacity: "0"}).slideDown(function(){
                           $(this).css({opacity: "1"});
                    });
                })

    на
    $('#listticker ul li').last().animate({opacity: "0"}, "800", function() {
                    $('#listticker ul').prepend(last);
                    $('#listticker li:first').css({opacity: "0"}).slideDown(function(){
                           $(this).css({opacity: "1"});
                    });
                })


    Но проблема с неадекватностью для двух и более вызовов кода на странице останется.
    Ответ написан
    Комментировать