2012-08-01 63 views
0

我試圖改變CSS類的點擊事件上的一個元素,但看不到哪一個是我必須使用的選擇器。看到我有一個DD,內有一些DD,第一個DD有class =「active」,當我選擇其他任何DD並將這個課堂分配給DD時,我需要移除這個類,明白嗎?有點例子:如何改變點擊事件的類

<dl> 
    <dd class="active">DD1</dd> 
    <dd>DD2</dd> 
    <dd>DD3</dd> 
</dl> 

如果我選擇DD2那麼class =「active」應該從DD1消失並移動到DD2等等。我認爲在使用:eq()但是不起作用。任何建議或幫助?

編輯:樣品準備就緒! 進入http://comvivem.treswd.com/net/並以demo/demo123登錄,然後轉到「Directorio」,您將看到過濾器和字母「A」,「B」等等,您可以看到A是默認的並具有活動類但選擇「B 「或任何其他,看看會發生什麼,這就是我以前所指的!

歡呼和感謝

+0

Cursory研究會爲此提供大量資源。你有沒有搜索?看看jQuery的'on()'和'toggleClass()'方法。 – Utkanos 2012-08-01 14:43:44

+0

當然,我之前做過研究,但不能得到我的代碼,因爲我尋求幫助@Utkanos – ReynierPM 2012-08-01 15:08:51

回答

4
$('dd').on('click', function() { 
    $(this).addClass('active').siblings().removeClass('active'); 
}); 

FIDDLE

+0

是非常罕見的,因爲您的代碼在JSFiddle中工作,但我的不是,我只是複製和粘貼沒有其他東西!我會上傳文件到某處,並在幾分鐘內將鏈接留在這裏 – ReynierPM 2012-08-01 14:49:48

0

這個JavaScript確實改變對點擊的鏈接,但是這是不是在您的情況需要:

$("dd").click(function(){ 
    $("dd").removeClass("active"); 
    $(this).addClass("active"); 
}); 

你還是這樣做此:

$(document).ready(function(){ 
    var letter = window.location.pathname.slice(-1); 
    $("dd").removeClass("active"); 
    $("dl.sub-nav dd a:contains("+letter+")").parent().addClass("active"); 
}); 

它仍然很不方便,最好將類設置爲服務器端腳本中當前選定的字母。

+0

它的工作原理,但暫時的,因爲活動類回到第一個元素意義DD1與其他代碼相同 – ReynierPM 2012-08-01 14:46:46

+0

我不明白。如果您單擊活動元素本身,是否要刪除該類? – Lixus 2012-08-01 14:48:46

+0

不,我不想從默認元素中刪除類,它是第一個DD1,並且指向單擊的元素,意思是DD2或DD3,或者甚至DD1,如果是這樣的話 – ReynierPM 2012-08-01 14:50:38