2013-01-20 54 views
0

我試圖讓jQuery Cycle使用每張幻燈片的唯一名稱來直接鏈接到每張幻燈片。我在malsups網站上發現了這個:http://jquery.malsup.com/cycle/perma2.html哈希固定鏈接的jQuery循環

試圖將它納入我的演示,但無濟於事,不知道我做錯了什麼?
DEMO:http://jsbin.com/uviram/1

即使我去http://jsbin.com/uviram/1#slide2它仍然使我http://jsbin.com/uviram/1#slide1 ..

$(function() { 

    var h, 
     hash = window.location.hash, 
     hashes = {}, 
     index = 0; 

    $('.slideshow slide').each(function(i) { 
     h = $(this).data('hash'); 
     hashes[h] = i; 
    }); 

    if (hash) 
     index = hashes[hash.substring(1)] || index; 

    $('.slideshow').cycle({ 
     fx: 'scrollHorz', 
     timeout: 0, 
     prev: $('.prev'), 
     next: $('.next'), 
     after: function(curr,next,opts) { 
      h = $(this).data('hash'); 
      window.location.hash = h; 
     } 
    }); 
}); 
+0

好了,所以,你使用的是什麼碼? –

+0

@TomWalters現在更新代碼片段,整個代碼都可以在我鏈接到的演示中找到! – INT

+0

更改'$(function(){'到'$(document).ready(function(){' – Mooseman

回答

1

我已經更新了您的jsbin演示,現在就可以運行。有三個問題:

  • 首先,我改變$('.slideshow slide')$('.slideshow .slide')正確選擇幻燈片。

  • 其次,我將startSlide選項放入循環調用中。

  • 最後,我把一個hashchange偵聽器,這樣如果用戶更改 哈希無需重新加載頁面,它會循環到正確的 幻燈片。

看看你更新的演示,看看它的工作:

http://jsbin.com/uviram/6#slide4

+0

可能需要查看'cycle2'。新功能http://jquery.malsup.com/cycle2/包括響應式佈局和自動初始化 – charlietfl

0

您還沒有包括startingSlide選項來傳遞你的index

$('.slideshow').cycle({ 
     /* pass index to startingSlide*/ 
     startingSlide:index, 
     fx: 'scrollHorz', 
     timeout: 0, 
     prev: $('.prev'), 
     next: $('.next'), 
     after: function(curr,next,opts) { 
      h = $(this).data('hash'); 
      window.location.hash = h; 
     } 
});