Тайм-аут плагина цикла Jquery увеличивается после нажатия? - PullRequest
0 голосов
/ 13 января 2012

Я использую плагин цикла вместе с другим скриптом jquery, я также использую опцию для управления слайдами плагинов цикла с помощью внешнего навигационного элемента, а именно <li> элементов в ul#pan_ul.

Кажется, все работает нормально, время ожидания установлено на: 8000, но после нескольких щелчков мышью, перемещающихся по различным слайдам, частота ожидания цикла увеличивается и становится переменной. Один слайд имеет время ожидания 2000, а следующие 5000, а затем 1000. Опять же, это происходит только после того, как щелкнули некоторые из навигационных модулей, он будет прекрасно работать заранее. вот мой код:

function cycleIt(){
$('#showcase').cycle({ 
    fx:     'scrollRight',
    timeout: 8000,
    before:  onBefore,
    pager:  '#pan_ul',
        pagerAnchorBuilder: function(idx, slide) { 
        // return selector string for existing anchor 
        return '#pan_ul li:eq(' + idx + ')'; 
        }
 });
}

function onBefore(){
    var currentPanel = $(this).index();
    var lastPanel = $(this).index()-1;
    if (lastPanel != -1) {
            $("#pan_ul li:eq("+currentPanel+")").css({"background-image":"url(Images/panelslice_ON.jpg)"})
            $("#pan_ul li:eq("+lastPanel+")").css({"background-image":"url(Images/panelslice.jpg)"});
                }
                else {
                $("#pan_ul li:first").css({"background-image":"url(Images/panelslice_ON.jpg)"})
                $("#pan_ul li:last").css({"background-image":"url(Images/panelslice.jpg)"});
                }           
}


$("#pan_ul li").click(function(){
    var oldPanel = $(".case:visible").index();
    var ind = $(this).index('#pan_ul li');

    $("#pan_ul li").css({"background-image":"url(Images/panelslice.jpg)"})
    $("#pan_ul li:eq("+ind+")").css({"background-image":"url(Images/panelslice_ON.jpg)"})
    /*$('#showcase').cycle('stop');
return false;
    $(".case:eq("+oldPanel+")").hide();
    $(".case:eq("+ind+")").show();


*/
})
});

Я загрузил тестовый сайт, который я запускаю в Интернете, если вы хотите проверить его лично. Действия каждые 8 ​​секунд. Чтобы увидеть проблему, просто кликните, как сумасшедший, по нескольким пунктам прокрутки в течение нескольких секунд. Затем посмотрите изменение тайм-аута в слайд-шоу.

http://almostfamousevents.com/TEST/

1 Ответ

0 голосов
/ 18 января 2012

Я пытался воспроизвести в Chrome, и на секунду тайм-аут, казалось, изменился, но затем вернулся к нормальному состоянию.Так что это заставляет меня подозревать, что источником проблемы является какое-то всплывающее событие от щелчков.вы можете остановить всплывающее событие и поведение по умолчанию, если оно где-то установлено, вызывая следующее внутри:

$.click(function(event){
event.preventDefault();
event.stopPropagation() ;
//rest of your code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...