2012-07-04 22 views
0

我想使用jQuery的東西添加所選菜單的類。我嘗試了下面的方法,它不工作。如何在mvc3 action link中使用jquery add remove類?

而且我的代碼是

<div class="paragraph"> 
    <ul class="tablinkss"> 
     <li class="active">@Html.ActionLink("Login", "LogOn")</li> 
     <li>@Html.ActionLink("Register", "Register")</li> 
    </ul> 
</div> 

而且我的jQuery

$(function() { 
      $('ul.tablinkss li').click(function() { 
       $('ul.tablinkss li').removeClass("active"); 
       $(this).addClass("active"); 
      }); 
     }); 

感謝,

+0

這應該工作,你肯定jQuery是正確加載? – undefined

回答

2

Html.ActionLink返回將有瀏覽器LOA的超鏈接d新的頁面。 除非您阻止鏈接加載下一頁,否則JavaScript將不起作用。那麼,它將工作一秒鐘,然後瀏覽器將顯示新的頁面。

  1. 登錄已激活。
  2. 用戶點擊註冊。
  3. 註冊由於您的JavaScript而變爲活動狀態。
  4. 瀏覽器加載註冊頁面。
  5. 登錄再次激活。

你需要在你的Razor模板中解決這個問題,而不是在JavaScript中。

+0

@ Hexxagonal-謝謝你的迴應。與上面完全相同,請列出它。我如何解決這個Razor模板? – user10489

+0

這是一個棘手的問題,因爲許多命名的路由可以解析爲登錄或註冊。我建議在ViewData或您的模型中指定什麼是活動的。 – scottheckel

0

試試這個

$('ul.tablinkss li').on('click',function() { 
      $('ul.tablinkss li').removeClass("active"); 
      $(this).addClass("active"); 
    }); 
0

嘗試event.stopPropagation()

$(function() { 
    $('ul.tablinkss li').click(function(e) { 
     e.stopPropagation() 
     $('ul.tablinkss li').removeClass("active"); 
     $(this).addClass("active"); 
    }); 
}); 
+0

抱歉它沒有工作。 – user10489

相關問題