0

各スライドに直接リンクできるように、各スライドの一意の名前を使用するようにjQueryCycleを取得しようとしています。私はこれをmalsupsサイトで見つけました:http://jquery.malsup.com/cycle/perma2.html

それを私のデモに取り入れようとしましたが、役に立たなかったので、何が間違っているのかわかりませんか?
デモ: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;
        }
    });
});
4

2 に答える 2

1

jsbin デモを更新したので、今すぐ動作します。次の 3 つの問題がありました。

  • まず、スライドを正しく選択するように変更$('.slideshow slide')しました。$('.slideshow .slide')

  • 次に、startingSlide オプションをサイクル呼び出しに入れました。

  • 最後に、hashchange リスナーを追加して、ユーザーがページをリロードせずにハッシュを変更すると、正しいスライドに切り替わるようにします。

更新されたデモを見て、動作を確認してください。

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

于 2013-01-20T21:34:45.473 に答える
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;
        }
});
于 2013-01-20T21:22:11.633 に答える