2010-10-21 58 views
1

我使用jQuery-UI的手風琴插件與哈希標記導航,但我遇到了問題。我網站的每一頁都有一個手風琴小部件。在我的主導航菜單的第二級中的URL都應該打開使用附帶的散列標籤手風琴的正確的面板,並且都寫像這樣:jQuery - 在同一個窗口中啓動URL,然後刷新

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

的問題是,如果你已經看着任何手風琴的一個面板,試圖用第二層導航裝置打開不同的面板不起作用。它將哈希標籤傳遞到地址欄,但除非刷新頁面,否則不會打開手風琴面板。所以,我想我可以解決通過添加一些jQuery的問題,將導致頁面後500毫秒刷新,像這樣:

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

除了現在破壞活動導航從頁面到新的頁面一個新的手風琴小組。這告訴我答案可能是完全控制二級導航的所有功能並使用jQuery處理它。

那麼我怎樣才能改變這個從錨標記的href屬性「存儲」URL,將它傳遞給瀏覽器,然後然後刷新頁面?

+1

提供便於調試示例頁面和重放..檢查事件是否正確綁定與否可能是你需要,我明白他們是動態來 – 2010-10-21 20:05:28

+0

我提出了一個示例頁面,在使用'live' http://www.tomryandesign.com/dev/accordion/demos/accordion/default.html,但它不會重現問題。 – Tom 2010-10-22 15:49:05

回答

0

我玩了一番,並設法使它看起來是一致的。基本上,我將所有lvl2定位標記中的href屬性更改爲rel屬性,然後在我的jQuery函數中使用該屬性來處理導航到新URL。然後我把超時時間從500增加到了1000毫秒。在沒有機會轉到新的URL之前,任何事情都會很快刷新頁面。

$('.lvl2 a').click(function() { 
    location.href=$(this).attr('rel'); 
    setTimeout(function() { 
     location.reload(); 
    },1000); 
}); 
0

如果lvl2手風琴是動態的,您可能需要使用liveliveQuery而不是click

+0

「LVL2」並不是指手風琴的類,它是指導航的主菜單中的第二個電平,其被構建爲一個無序列表,像這樣:

Tom 2010-10-21 22:13:47