2011-11-10 10 views
0

こんにちは私はこのスクリプトを使用して、次のボタンと前のボタンでアンカーを移動しています。(基本)goToNextに従ってgoToPrev関数?

私はこのgoToNext関数を持っており、goToPrev関数に同じスクリプトが必要です。ボックスが私のアンカーの名前です

var max = 5; 
function goToNext() { 
    var hash = String(document.location.hash); 
    if (hash && hash.indexOf(/box/)) { 
     var newh = Number(hash.replace("#box","")); 
     (newh > max-1) ? newh = 0 : void(null); 
     document.location.hash = "#box" + String(newh+1); 
    } else { 
     document.location.hash = "box1";   
    } 
} 

...私はそれは本当に簡単ですかなり確信しているが、私は試したし、それを適切に行う動作することはできません。 ありがとう!

+0

max' '定義.... –

+0

私は完全に、私は-1 +1を置き換え、それは基本的に動作することを言及するのを忘れてしまいました問題は実際にはゼロで停止せず、負になるということです。万一それがうまくいくかどうかを確認するためにvar minを追加しようとしましたが、それはできませんでした。 – Moop

+0

最大値はページ内のアンカー番号 – Moop

答えて

0

はこのことを考えてみましょう:

function goBy(x) { 
    var hash, n; 

    hash = location.hash; 

    if (hash.search(/^#box/) > -1) { 
     n = +hash.slice(4) + x; 
     if (n > max) { n = 1; } else if (n < 1) { n = max; }   
     location.hash = '#box' + n; 
    } else { 
     location.hash = '#box1'; 
    } 
} 

あなたはgoBy(1)またはgoBy(-1)のいずれかを呼び出すことによって、この機能を使用します(ボタンがクリックされたかに依存します)。

ライブデモ:http://jsfiddle.net/4h6he/5/show/

コード:http://jsfiddle.net/4h6he/5/

+0

驚くばかり!ありがとう、たくさんの男! – Moop

+0

@Moopデモを更新しました(ページロード時に '#box1'を選択するようにしました - これが望ましい動作だと思います)。 –

+0

ああ、ありがとう!そして、私はどのように最大を設定できますか? – Moop

関連する問題