2012-01-04 83 views
0

有沒有一種方法與jQuery知道你剛剛沒有使用id的滾動出哪個div?用jquery識別沒有使用id的histed元素?

基本上我有類似以下情形:

如果用戶將鼠標懸停在它變成了紅色覈實。 如果用戶將鼠標懸停在另一個div上,則所有div都變爲白色(基本上重置所有內容),並且當前在div上懸停的圖標變爲紅色。 但是,如果用戶翻轉一個div將它變成紅色,然後又回到同一個div中,我不希望它回到白色,然後再變成紅色。

+0

你能[小提琴](http://jsfiddle.net/)嗎?將使它更容易幫助。 – 2012-01-04 13:40:13

+0

它不是我想要添加刪除的類。也許我舉了一個壞榜樣。基本上一個盒子包含三個可以顯示或隱藏的盒子。當鼠標進入一個不是它所離開的盒子時,我想將所有盒子重置爲原始狀態。如果它重新進入它離開的盒子,它應該保持在相同的狀態。 – 2012-01-04 13:45:46

+0

就像@ShadowWizard所說,在jsfiddle中編碼 – Alex 2012-01-04 13:46:54

回答

0

這裏是另一種解決方案:http://jsfiddle.net/adeneo/ep39L/1/

var last; 

$('div').mouseenter(function(e) { 
    var elm = $(e.target); 
    if (last != elm) { 
     $('div').css('background', 'white'); 
     elm.css('background', 'red'); 
    } 
    last=elm; 
    $('div').eq(2).html(last.index()+1); 
}); 
+0

我喜歡這個,乾杯:) – 2012-01-04 14:27:21

0

徘徊時,給它一個臨時類:

$(this).addClass(); 

然後,當你準備刪除它使用:

$(this).removeClass(); 
2

添加類,當你將鼠標放置,然後檢查該類當鼠標懸停再次存在時。如果它沒有清除所有div的課程。如果你不想使用類,你可以使用.data.removeData

$('div').on('mouseover', function() {  
    if (!$(this).hasClass('red')) { 
     $('div').removeClass('red'); 
    } 
    $(this).addClass('red'); 
}); 

JSFiddle Example

+0

downvote的任何特定原因? – 2012-01-04 16:04:04

0

使用非:

HTML:

<div> 
    <span>1</span> 
    <span>2</span> 
    <span>3</span> 
</div> 

JS:

$("div span").click(function(){ 
    $(this).closest("div").find("span").not(this).css("background", "#fff"); 
    $(this).css("background", "#f00"); 
});