2012-12-06 25 views
1

我有一個問題,試圖改變一個類的值。 我有以下:如何解決與jQuery的活動列表問題

我的HTML。這是一個菜單:

<ul class="nav"> 
<li class="active"> 
<a href="home.php">Inicio</a> 
</li> 
<li> 
<a href="correspondencia.php">Entrada</a> 
</li> 
</ul> 

我的JQuery

$(document).ready(function(){ 
    $('ul.nav li').click(function() {  
    $('ul.nav li').removeClass('active'); 
    $(this).addClass('active'); 
    }); 
}); 

我想從INICIO刪除類活性和類主動添加到ENTRADA,但是當我點擊它不變。

我不是什麼問題。

+3

[Your code works](http:// js fiddle.net/emLb9/),但是您需要記住,通過javascript _do所做的更改不會通過頁面加載/刷新持續進行。 –

回答

1

你應該使用$().on('click', function() {});http://api.jquery.com/on/

$(document).ready(function(){ 
    // Here us on 
    $('ul.nav a').on('click', function(e) { 
     // Do not go to the page ? 
     e.preventDefault() ; 
     // Select only the active one (was not a problem but is proper) 
     $('ul.nav .active').removeClass('active'); 
     $(this).parent().addClass('active'); 
    }); 
}); 

編輯:a元素上的點擊。這更好。示例已更新。 編輯2:這裏是一個的jsfiddle:http://jsfiddle.net/KdaHh/ 編輯3:刪除一個錯誤的假設,由於邁克爾評論。

+0

你的回答是錯誤的。對問題的評論可解決問題。 閱讀'.click()'並習慣於緩存選擇內容一遍又一遍地搜索同一個類的'ul'。 –

+0

你確定嗎? http://jsfiddle.net/KdaHh/ :) – Ulflander

+0

我說過「你的代碼無法工作」嗎?我說答案是不正確的,這是不同的。首先 - [.click()](http://api.jquery.com/click/),以及第二個 - 閱讀該問題下的評論。 –

0

我相信你在使用Jquery。
檢查了這一點http://api.jquery.com/parent/

$(document).ready(function(){ 
    $('a').click(function(){ 
     $('a').parent().removeClass('active'); 
     $(this).parent().attr('class', 'active'); 
    } 
}); 


這段代碼

$('a').parent().removeClass('active'); 

剛剛從錨標記的li刪除所有active級及以下段添加active類當前點擊

$(this).parent().attr('class', 'active');