2011-02-15 10 views
0

私はここで私の自己を殺しています。アンカー/ハッシュのインデックスを取得

私はindex.html#about(またはそれを好きで開きます)を入力すると、index()を取得して、それを下のスクリプトに "slideNumber"として挿入します。

マークアップ

<div id="slideshow"> 
    <div id="frontpage"> 
    <div id="About"> 
    <div id="Contact"> 
</div> 

jQueryの

$(window).bind('hashchange', function() { //detect hash change 
    var hash = window.location.hash.slice(1); //hash to string (= "myanchor") 
    $('.slideshow').cycle(slideNumber); //Slideshow-number 
}); 

"#about" 2 "#contact" はそうで3こととなるであろう。

どうすればいいですか?

+0

を試してみてください、 class = "slideshow"の要素を選択している ".slideshow"を使うか、または "#slideshow"を使ってid = "slideshow"を取得しますか? – kafuchau

+0

jQueryの ".index()"関数を見ましたか? – Pointy

+0

@Kchau:はい @Pointy:はい、これは私が使いたいものです。しかし、私はそれを動作させるように見えることはできません。私は何か基金が不足していると思う。どのようにIndex()を取得することができます: "window.location.hash.slice(1)" ??それは私が欲しいものです –

答えて

1

をこのような単純な何かはページロードで動作するはずです:

if(window.location.hash != undefined) { 
    var slideNumber = $(window.location.hash).index() + 1; 
} 

あなたがスロウをナビゲートしている場合ハッシュの変更は、それが更新されますときように、ページをGHあなたのバインドを行うと、インデックスを行うことができます()内の呼び出し:

$(window).bind('hashchange', function() { //detect hash change 
    var slideNumber = $(window.location.hash).index(); //slideNumber 
    $('.slideshow').cycle(slideNumber); //Slideshow-number 
}); 
+0

あなたがindex.html#contactを入力すると、それを有効にしたいのですが?あなたが最初にページにいた場合にのみ、あなたのソリューションはこれをしません。 –

+0

jQueryを使用している場合は、最初のコードスニペットを.ready()ブロックにスローするとページが読み込まれ、それが実行され、slideNumberが返されます。 – kafuchau

0
slides = {frontpage: 1, about: 2, contact: 3}; 
$('.slideshow').cycle(slides[hash]); 

あなたはこのようなものを使用することができ、それを動的にするために、私は推測する:

$('#slideshow>div').each(function(i) { 
    if(this.id == hash) { 
    $('.slideshow').cycle(i); 
    } 
} 

または

$('.slideshow').cycle($('#slideshow>div').index(hash) + 1); 
+0

私はそれを動的にしたいので、私はページタイトルを書く必要はありません。どうすればIndex()を取得できますか?window.location.hash.slice(1)???警告(window.location.hash.slice(1).index());動作しません... –

+0

答えを更新しました。 –

1

が、これはあなたの選択で

var slideNumber = $("div#" + window.location.hash.slice(1)).prevAll().length 
関連する問題