Плагин Jquery Cycle, обновление слайдера при изменении содержимого, проблема! - PullRequest
0 голосов
/ 18 июля 2011

Я только что опробовал Cycle Plugin Майка Алсупа. Кажется легким и достаточно легким для страницы, которую я создаю. Но теперь я столкнулся с проблемой.

Я применяю цикл к списку изображений. Теперь я попытался уничтожить и повторно применить плагин, но безуспешно.

Я запускаю ('destroy'); при изменении содержимого и снова применяю плагин с помощью:

$('#slides').cycle('destroy'); 

$('#slides').cycle({ 
    fx:     'fade', 
    speed:  'fast', 
    timeout: 0, 
    next:   '#next', 
    prev:   '#prev' 
});

И это относится к:

<div id="display">

    <a href="#" id="prev">Previous</a>
    <a href="#" id="next">Next</a>  

    <div class="imgcontainer">
        <ul id="slides">
            > List of images to go into slideshow. <
        </ul>
    </div>

    <div class="infocontainer">
        <h2> Object title </h2>
        <p> Object information </p>
    </div>
</div>

Все выглядит нормально, пока я не попытаюсь изменить изображение после обновления ползунка:

TypeError: 'null' не является объектом (оценка 'p.cycleTimeout')

JavaScript в целом;

$('#projects > li').click(function(){

        var a = $(this);

        $('#display .imgcontainer ul').html((a).children('ul.images').html());
        $('#display .infocontainer h2').html((a).children('h2').html());
        $('#display .infocontainer p').html((a).children('p').html());

        if(!$(a).hasClass('sub'))
        {
            var title = $(this).attr('title');
            $(a).siblings("[title='" + title + "']").toggle();
        }

        var imgcount = $('.imgcontainer li').size();


        // Only apply plugin if there's more than one image in the list.
        if(imgcount > 1)
        {
            $('#slides').cycle('destroy'); 

            $('#slides').cycle({ 
                fx:     'fade', 
                speed:  'fast', 
                timeout: 0, 
                next:   '#next', 
                prev:   '#prev' 
            }); 
        }
    });

1 Ответ

1 голос
/ 18 июля 2011

В первый раз вы вызываете «уничтожить», хотя цикл никогда не применялся.Это, вероятно, откуда ваша ошибка.

Вы не должны делать это таким образом, в любом случае.Cycle имеет функцию addSlide специально для этой цели.См. Примеры:

...