2012-01-12 20 views
0

我正在使用循環插件以及其他一些jQuery腳本,我還使用該選項來控制具有外部導航的循環插件幻燈片,即<li>元素ul#pan_ul點擊後Jquery循環插件超時加速?

一切似乎工作正常,我有超時設置爲:8000,但在幾次點擊導航不同的幻燈片後,循環超時頻率似乎增加,並變得可變。一張幻燈片似乎有一個超時2000和下一個5000,然後1000.再次,這隻發生在點擊一些導航li之後,它會事先運行完美。這裏是我的代碼:

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/

+0

您可以在jsFiddle上設置演示嗎? – glortho 2012-01-12 21:56:59

+0

錯誤修復:Jquery Cycle版本:2.9999.3(08-MAR-2012) – 20pictures 2012-03-10 10:37:39

回答

0

我試着在鉻重現和第二超時似乎變了,但隨後又恢復正常了。因此,這導致我懷疑問題來源是點擊發生的一些冒泡事件。你可以停止事件冒泡和默認行爲,如果設置某處在以下內部調用:

$.click(function(event){ 
event.preventDefault(); 
event.stopPropagation() ; 
//rest of your code