1

ハッシュ タグ ナビゲーションで jQuery-UI のアコーディオン プラグインを使用していますが、問題が発生しています。私のサイトの各ページには、アコーディオン ウィジェットがあります。私のメイン ナビゲーション メニューの第 2 レベルの URL は、付随するハッシュ タグを使用してアコーディオンの正しいパネルを開くことになっており、次のように記述されています。

<li class="lvl2"><a href="/thepage.jsp#panel-3">panel 3</a></li>

問題は、すでにいずれかのアコーディオンの 1 つのパネルを見ている場合、第 2 レベルのナビゲーションで別のパネルを開こうとしても機能しないことです。ハッシュ タグをアドレス バーに渡しますが、ページを更新しない限りアコーディオン パネルは開きません。そこで、次のように、500 ミリ秒後にページを更新する jQuery を追加することで、問題を解決できると考えました。

$('.lvl2 a').click(function() {
    setTimeout(function() {
        location.reload();
    },500);
});

ただし、ページから新しいページと新しいアコーディオン パネルへのナビゲーションが妨害れています。答えは、第 2 レベルのナビゲーションのすべての機能を完全に制御し、jQuery で処理することです。

では、これを変更して、アンカー タグの href 属性から URL を「保存」し、それをブラウザーに渡しページを更新するにはどうすればよいでしょうか?

4

2 に答える 2

0

私はそれをもう少しいじって、一貫した方法で動作させることができました. 基本的に、すべての lvl2 アンカー タグの href 属性を rel 属性に変更し、jQuery 関数でその属性を使用して、新しい URL へのナビゲーションを処理しました。次に、タイムアウトを 500 から 1000 ミリ秒に増やしました。それ以下だと、新しい URL に移動する前に、ページの更新が早す​​ぎるようです。

$('.lvl2 a').click(function() {
    location.href=$(this).attr('rel');
    setTimeout(function() {
        location.reload();
    },1000);
});
于 2010-10-22T21:04:01.150 に答える
0

lvl2アコーディオンが動的な場合は、の代わりにliveorを使用する必要がある場合があります。liveQueryclick

于 2010-10-21T20:06:22.517 に答える