2014-04-21 53 views
2

我做了兩個框,其中背景將在懸停和活動狀態下更改。這裏是我的工作: http://jsfiddle.net/3Vbz8/如何通過鼠標點擊刪除活動類

在那裏,當我點擊「一」它會設置爲它的活動狀態(綠色背景)。沒關係。當我點擊「Two」時,它將設置爲活動狀態,「one」將返回到之前的狀態(灰色背景)。這對我也很好。但是,我希望當「one」設置爲活動狀態時,當我點擊「One」時,它也會回到正常狀態(灰色背景)。類似的事件也應該發生在「兩個」上。我怎樣才能做到這一點?

我的應用腳本:

$('.toggle').click(function(){ 
    $('.toggle').removeClass("active"); 
    $(this).toggleClass("active"); 
}); 

........... UPDATE ...........

克里希納幫我看看這個: http://jsfiddle.net/3Vbz8/1/

$('.toggle').click(function(){ 
    $('.toggle').not(this).removeClass("active"); 
    $(this).toggleClass("active"); 
}); 

我注意到這應該爲我的項目更新的問題。這個問題是:如果「one」處於「活動」狀態,那麼當時,如果任何用戶點擊「One」,它將返回到它的原始狀態。但是,如果用戶不從該按鈕上移除他/她的鼠標指針,該按鈕也顯示在綠色背景上。這是爲了懸停顏色。因此,如果任何用戶一次又一次點擊一個按鈕,他/她就不會理解該狀態是否改變,除非他/她移動了他/她的指針。我需要(當鼠標指針不被用戶移動時):如果有人點擊「One」按鈕,它會變成「綠色背景」。如果用戶再次點擊「One」,它會變成「灰色背景」(爲了解更改用戶不必移動他/她的鼠標指針)。總之懸停顏色應該是不活動的,如果用戶一次又一次地點擊一個按鈕不動,他/她的鼠標指針

+2

http://jsfiddle.net/3Vbz8/8/ Krishna的答案只有一個稍微不同的CSS的方法。 –

+0

爲了更好的用戶體驗,懸停效果應該與真實世界中的效果類似。 I.e:比方說,我們有一個真正的按鈕,我們只需按住它通常不會啓動的按鈕,就可以改變不透明度或僅改變顏色級別。創建*交互式網頁按鈕*時應保持相同的方法。一旦你點擊它,讓它閃耀! –

+0

是的,你對UX的觀點是正確的。但是,在我的真實項目中,我沒有那個按鈕。我在我的真實項目中有一個嘀嗒標誌,一個十字標誌,一個編輯標誌。起初,這些就像非活動狀態(通過在現實世界中不活躍的灰色)。當用戶點擊該標誌時,它將變爲活動狀態。通過懸停在他們身上,一條消息發送給他們,你只能通過點擊它來激活它。這就是爲什麼,懸停和活動顏色相同 – user1896653

回答

7

使用not(this)Documentation

http://jsfiddle.net/3Vbz8/1/

$('.toggle').click(function(){ 
    $('.toggle').not(this).removeClass("active"); 
    $(this).toggleClass("active"); 
}); 

編輯:

我喜歡@Roko C.Buljan觸摸CSS來區分懸停和點擊(評論中)

http://jsfiddle.net/3Vbz8/8

.toggle:hover { 
    background: #888; 
} 

.toggle.active{ 
    background: green; 
} 
+0

這很好,但是當「One」處於活動狀態時,當時,如果我點擊「One」,它將返回到之前的狀態。但如果我不從「One」中刪除我的鼠標指針,它也會在刪除「活動」類後變綠。這是因爲懸停顏色。所以,問題是:如果一個普通用戶一次又一次點擊「One」按鈕,他不會理解該設置是否設置爲非活動狀態,除非他/她不會從該按鈕上移除他/她的鼠標指針。 – user1896653

+0

那麼,如何刪除懸停顏色時,「主動」刪除和鼠標指針是在那個按鈕仍然然後 – user1896653

+0

只是添加另一個CSS類:http://jsfiddle.net/3Vbz8/3/ – superUntitled

相關問題