2013-01-11 79 views
0

上一個/下一個功能不適用於新的部分選擇。這個想法是,當頁面加載時,會加載幾個幻燈片,用戶將用prev/next按鈕瀏覽它們。當他們到達一個部分的結尾時,他們將選擇他們想要查看的下一部分。我的問題是,在用戶導航到新的部分後,prev/next函數不起作用。上一個/下一個功能失敗

這是JSFiddle。所以你不要錯過它們,prev/next按鈕分別是頁面左側和右側懸掛的prev/next幻燈片的邊緣。以下是我相信導致問題的JavaScript的部分。

感謝

var secName, 
    slideCount, 
    centSlide; 

liveSec(0); 

// Initiate live section 
function liveSec(x) { 
    centSlide = 0; 
    secName = $('#slider > div:eq('+x+')').attr('id'); 
    slideCount = $('#'+secName+'').children().length; 
    $('#'+secName+'').children().first().addClass('liveslide').next().addClass('next'); 
} 

// call prev/next functions 
$('#'+secName+' > div').click(function() { 
    var index = $('#'+secName+' > div').index(this); 
    if (index > centSlide) nextcycle(centSlide, slideCount); 
    if (index < centSlide) prevcycle(centSlide, slideCount); 
    return false;   
}); 

// cycle sections 
$('#'+secName+' .select').click(function() { 
    if (!e) var e = window.event; 
    e.cancelBubble = true; 
    if (e.stopPropagation) e.stopPropagation(); 
    $('.liveslide').removeClass('liveslide'); 
    $('.prev').removeClass('prev'); 
    i = $('#'+secName+' .select').index(this); 
    liveSec(i); 
}); 

回答

0

你沒有分配的功能在其他章節的幻燈片。只有第一部分的幻燈片纔會定義onclick功能。讓通過所有的人都一定要循環之初

for (var i=0; i < noOfSections; i++) 
{ 
    var secName = sections[i]; 

    // call prev/next functions 
    $('#'+secName+' > div').click(function() { 
     var index = $('#'+secName+' > div').index(this); 
     if (index > centSlide) nextcycle(centSlide, slideCount); 
     if (index < centSlide) prevcycle(centSlide, slideCount); 
     return false;   
    }); 

    // cycle sections 
    $('#'+secName+' .select').click(function() { 
     if (!e) var e = window.event; 
     e.cancelBubble = true; 
     if (e.stopPropagation) e.stopPropagation(); 
     $('.liveslide').removeClass('liveslide'); 
     $('.prev').removeClass('prev'); 
     i = $('#'+secName+' .select').index(this); 
     liveSec(i); 
    }); 

}

究竟在撥弄工作對我來說是當你移動第二點擊功能下面的liveSec功能的右括號,但我我不確定你的部分是如何工作的,所以最終可能會多次指定點擊功能,除非你先解除綁定。

// Initiate live section 
function liveSec(x) 
{ 
centSlide = 0; 
secName = $('#slider > div:eq('+x+')').attr('id'); 
slideCount = $('#'+secName+'').children().length;   
    $('#'+secName+'').children().first().addClass('liveslide').next().addClass('next'); 


    // call prev/next functions 
$('#'+secName+' > div').click(function() { 
    var index = $('#'+secName+' > div').index(this); 
    if (index > centSlide) nextcycle(centSlide, slideCount); 
    if (index < centSlide) prevcycle(centSlide, slideCount); 
    return false;   
    }); 

    // cycle sections 
$('#'+secName+' .select').click(function() 
    { 
    if (!e) var e = window.event; 
     e.cancelBubble = true; 
     if (e.stopPropagation) e.stopPropagation(); 
    $('.liveslide').removeClass('liveslide'); 
    $('.prev').removeClass('prev'); 
    i = $('#'+secName+' .select').index(this); 
    liveSec(i); 
}); 
} 
+0

謝謝瑪蒂娜。看來移動右括號是我需要做的。 – user1905842

+0

酷,我很高興它的作品。 – Martina

+0

只要我只訪問每個部分一次,那麼這個解決方案的作品。當我嘗試第二次查看某個部分時,它會失敗。有什麼想法嗎? – user1905842

相關問題