2011-08-22 85 views
0

我想創建一個菜單欄將保留哪些被點擊通過改變菜單的背景顏色菜單中的信息。如何檢測一個鏈接被點擊,即使頁面被重定向

<div class="dashboard_navigation"> 
    {% for header in headers %} 
      <div class="navigation_header" name="Home"> 
       <a id='a' href="{{ header.url }}">{{ header.name }}</a> 

       <div class="navigation_subheader"> 

         {% for subheader in subheaders %} 
          {% if header.id == subheader.parent.id %} 
           <div> 
            <a href="{{ subheader.url }}" >{{ subheader.name }}</a> 
           </div> 
          {% endif %} 
         {% endfor %} 
       </div> 
      </div>  
    {% endfor %} 

我使用的腳本如下

$(".navigation_header").live('click', function() 
    {   
     $(this).children('a').css("background-color","red"); 

    }); 

我在做什麼錯?信息中提供的信息是否足夠,或者我應該添加什麼內容?

+0

如果我到了那裏,不是因爲我點擊了一個鏈接,但因爲我去直接的網址是什麼?服務器應根據用戶所在的當前頁面構建並突出顯示導航。這不是JavaScript的真正的工作。 – deceze

+0

'「我應該添加一些東西」 - 是的,如果你展示了這麼多的服務器代碼,就適當地標記問題。在這種情況下,我添加了ASP標籤,是否正確? –

回答

0

當您點擊鏈接時頁面即將被重定向,所以即使您將一個點擊事件處理程序附加到其父頁面div,由於該頁面將被重定向,因此它不起作用。

您可以存儲鏈接點擊一個cookie當前用戶會話。在頁面加載時讀取cookie值並相應地設置背景顏色。

你可以看看這裏 http://plugins.jquery.com/project/Cookie

0

每個div.navigation_header都有一個唯一的名稱的jQuery插件的cookie,像 「首頁」,對不對? (如果他們不要那麼給他們一個!)

你的服務器還應該知道哪個頁面與每個名稱對應。所以,它會爲該頁面編寫一個樣式。

例如,對於首頁頁面,它會寫:

div.navigation_header[name=Home] a { 
    background-color: red; 
} 

否則,你將不得不使用cookie或URL參數。

相關問題