2

私はこの奇妙なことが起こっています:ナビゲーションでスパンをクリックすると、コンテンツを切り替える必要があります。スパンをクリックするとページがジャンプすることを除いて、すべてが機能します(スパンはそのとき一番上にあります)。ページジャンプについて私が見つけたのは、アンカータグについてであり、falseを返します。しかし、スパンについては何もありません。私の意見では、表示されているdivは1つしかないため、コンテンツの切り替えが原因になることはありません。なし(その場合、ページはスパンにジャンプするのではなく、一番上にジャンプする必要がありますよね?)防止スパンではどのアクションも機能しないようです。

$("#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()を試したときに機能しませんでした(スパンであるため)。

4

1 に答える 1

0

click()私はあなたの関数でこの余分な行を見つけました:

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

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

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

于 2012-01-15T10:55:48.050 に答える