2012-07-03 246 views
0

所以我有一個元素,點擊時切換兩種背景顏色。但是當元素未被選中時,我希望背景顏色在懸停時改變(並恢復)。我試過在切換內使用.on('hover')和.off('hover'),但只有.off()似乎有效。jQuery的切換和懸停功能

$('.element').hover(
    function() { 
    $(this).css('background', '#e7f1f5'); 
    }, 
    function() { 
    $(this).css('background', '#fff'); 
    } 
); 

$('.element').toggle(
    function(select) { 
    select.preventDefault(); 
    $(this).off('hover'); 
    $(this).css('background', '#f6f6f6'); 
    other.code(); 
    }, 
    function(unselect) { 
    unselect.preventDefault(); 
    $(this).on('hover'); 
    $(this).css('background', '#fff'); 
    other.code(); 
    } 
); 

我切換'開','懸停'事件不再觸發(根據需要)。 當我切換「關閉」時,「懸停」事件仍然不會觸發。

我對jQuery和StackOverflow相當陌生,所以我很抱歉,如果這個問題是微不足道的。

謝謝!

回答

1

使用CSS:的

.element{ 
    background-color:#FFF; 
} 
.element.hover{ 
    background-color:#e7f1f5; 
} 

代替$(this).off('hover');做:

$(this).addClass('hover'); 

,而不是$(this).on('hover');做:

$(this).removeClass('hover'); 
+0

抱歉,但是這是行不通的。元素切換爲「開啓」後,懸停事件不應起作用。這似乎沒有解決這個問題。 –

+0

@MichaelChoi嘗試'$(this).hover();'而不是'on' – mgraph

+0

我甚至沒有想過在css中改變懸停。謝謝! –