2012-01-15 12 views
1

私はこの奇妙なことが起こっています: ナビゲーションでスパンをクリックするとコンテンツが切り替わる必要があります。 スパンをクリックするとそのページがジャンプします(スパンは最初に右になります)。私がページジャンプについて知るのは、アンカータグに関するものであり、falseを返します。スパンについては何もしていません。 私の意見では、表示内容を持つdivは1つしかないので、切り替えの内容を非難することはできません:none(そしてその場合、ページはスパンにジャンプするのではなく、先頭にジャンプする必要があります) アクションの防止は、スパンでは機能していないようです。説明が混乱した場合Page jump on span.click()

$("#subnavi span").click(function(){ 
    $("#inner-content div:visible").animate({height: "toggle", opacity: "toggle"}, "slow"); 
    $("#content-"+this.id).animate({height: "toggle", opacity: "toggle"}, "slow"); 
    $("#subnavi span").attr("class", ""); 
    $(this).attr("class", "active"); 
}); 

、ここに行く:http://gaming-siblings.com/v2.0/#newsと左側のナビゲーションで統計をクリックします。ページは、クリックしたスパンにジャンプし、divの高さのために少しスクロールします。なぜそれはスパンにジャンプするのですか?

おそらく奇妙ではありませんが、妥当ではありません。私はちょうどそれを得ることはありません:-)

私は2日間これを試しました。

アイデア/ソリューションはありますか?前述のようにfalseを返します。またはpreventDefault()は私が試したときに動作しませんでした(それは私が推測する範囲です)。

答えて

0

私はあなたのclick()機能でこの余分な行を発見:

document.location.hash = "#" + this.id; 

をこれは「ジャンプ」の原因である—ページが自動的にスクロールされますので、ページのURLにハッシュを追加していますそのアンカー(この場合は、idを追加してからクリックされた要素にスクロールします)。

実際にはページが完全にリロードされないことがわかっている回避策はありません。あなたの最善の策は、別のページを使うか、あるいはハッシュをまったく使わないことです。

+0

Heh、私はジャンプに気付いた後にハッシュ変更を加えたと思った。ハッシュを変更することは実際にはハッシュアンカーのように機能するとは考えていませんでした。それを指摘してくれてありがとう。それでは、それは完璧な意味合いです。存在しないハッシュのIDを使用して回避策を作成しました。そのため、ジャンプできません。私はそれが少し汚れていると思うが、それは動作します。 – user1021052