1

jQuery Elastislide にギャラリーがあります。

ギャラリーの各写真には、対応するハッシュがあります。

例: *www.example.com/gallery.html#4/title_of_the_picture*

したがって、4 番目の画像を再読み込みすると、ページは 4 番目の画像を読み込みます。

しかし、ハッシュのタイトルの前に番号なしでリロードすると、画像が読み込まれません。

*www.example.com/gallery.html#title_of_the_picture*

この番号を削除できますか? 可能であれば、Jquery で使用する正しいコードは何ですか?

jQuery コード:

Gallery = (function() {
    // index of the current item        
    var imageIndex = 0;
    if (window.location.hash) {
        var imageIndexStr = window.location.hash.replace('#', ''); // remove #
        imageIndex = parseInt(imageIndexStr, 0); // convert to int
    }

    var current = imageIndex;
    // mode : carousel || fullview
    mode = 'carousel',
    // control if one image is being loaded
    anim = false, init = function() {
        // (not necessary) preloading the images here...
        $items.add('<img src="ajax-loader.gif"/><img src="black.png"/>').imagesLoaded(function() {
            // add options
            _addViewModes();
            // add large image wrapper
            _addImageWrapper();
            // show first image
            _showImage($items.eq(current));
        });
    }
}​
4

1 に答える 1

2

コード行:

var imageIndexStr = window.location.hash.replace('#', '');
imageIndex = parseInt(imageIndexStr, 0); // convert to int

ハッシュの最初の文字を int に変換しようとしますが、最初の文字が有効な int でない場合 (あなたが言っているように 4 を削除した場合のように)、JavaScript は次の場所でエラーになりますその時点でそれ以上進む必要はありません。

parseInt()また、ドキュメントによると、- 0 は の有効なオプションではないようです。

編集: W3Schoolsへのリンクを置き換えました

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt

于 2012-08-28T12:28:30.093 に答える