2009-11-14 168 views
0

我一直在使用jquery循環插件(malsup.com/jquery/cycle),它的功能與我想要的完全一樣,只是它看起來並沒有將第一張幻燈片識別爲幻燈片。我正在使用onAfter函數來打開和關閉下一個/ prev鏈接,並適當地打開和關閉 顯示頁面1?但是下一個鏈接在第2頁 上自己保留(當您預期前導鏈接已經出現時),並且儘管 頁面的計數正確,但頁面2顯示爲與實際頁面1相同的第1頁,共7頁 )。你可以明白我的意思的:jquery循環插件

http://www.nottingham.ac.uk/~ttzelrn/ma-tesol/module1/unit1/index.php

的div的結構相當複雜,但我認爲這是聲音,正如 我說,插件計數的div確定。下面

代碼:

$(document).ready(function() { 
     $('#cycle-content').cycle({ 
     fx:  'none', 
     prev: '#prev', 
     next: '#next', 
     after: onAfter, 
     timeout: 0 
     }); 

function onAfter(curr, next, opts) { 
var index = opts.currSlide; 
$('#prev')[index == 0 ? 'hide' : 'show'](); 
$('#next')[index == opts.slideCount - 1 ? 'hide' : 'show'](); 

var caption = 'Page ' + (opts.currSlide + 1) + ' of ' + 
opts.slideCount; 
$('#caption').html(caption); 
} 

}); 

我會爲任何幫助,真的很感謝。

馬修

回答

1

你不會在你的回調後遞增currSlide。嘗試這樣的:

$(document).ready(function() { 
     $('#cycle-content').cycle({ 
     fx:  'none', 
     prev: '#prev', 
     next: '#next', 
     after: onAfter, 
     timeout: 0 
     }); 
}); 

function onAfter(curr, next, opts) { 
    var index = opts.currSlide; 
    $('#prev')[index == 0 ? 'hide' : 'show'](); 
    $('#next')[index == opts.slideCount - 1 ? 'hide' : 'show'](); 
    opts.currSlide++; 
    var caption = 'Page ' + (opts.currSlide) + ' of ' + opts.slideCount; 
    $('#caption').html(caption); 
} 
+0

非常感謝這 - 很遺憾,它不能解決問題。它現在跳過幻燈片2並導致所有幻燈片相互重疊。 – Matthew 2009-11-14 16:56:33

+0

我也只是注意到你已經把onAfter方法放在document.ready方法中。試試我上面編輯的修改。 – SimonDever 2009-11-15 02:00:19

+0

再次感謝Ambrosia - 我終於發現,如果fx:(它支配轉換效果)被設置爲'none',那麼原始代碼只會失敗。所有其他效果(scrollHorz,淡入淡出等)完美地工作。感謝你的寶貴時間。 – Matthew 2009-11-15 13:44:22