2011-01-13 58 views
1

我有一個菜單,鼠標將添加attr類這個。 如果一個選定的選項卡被選中,頁面被重新加載它,它有這個類刪除attr只有當與jquery

我希望在鼠標出,我將能夠刪除添加的類,只有當它是我剛剛添加,而不是一個是與頁面加載 - 我怎麼能?

回答

2

有幾種方法可以做到這一點。一種方法是使用數據。

$("whatever").mouseover(function(){ 
    if (!$(this).hasClass("someClass")) { 
    $(this).addClass("someClass").data("addedByMe",true); 
    } 
}); 

$("whatever").mouseout(function(){ 
    if ($(this).data("addedByMe") == true){ 
     $(this).removeClass("someClass"); 
    } 
}); 
0

我會建議使用兩個CALSS名稱(如selectedfocused)。

因此,當您選擇一個選項卡時,您將selected類添加到它。鼠標懸停事件僅改變focused類。

如果需要,您可以將selectedfocused都設置爲具有相同的CSS規則集。

$(".menu-item").mouseover(function() { 
    $(this).addClass("focused"); 
    // or if you don't want the effect affect the selected item, use the following: 
    // if(!$(this).hasClass("selected")) { $(this).addClass("focused"); } 
}).mouseout(function() { 
    $(this).removeClass("focused"); 
}); 
0

您可以在頁面加載時設置變量。

var isClassAppliedAtLoad = false; 

if ($("#yourelement").hasClass("yourclassname")) { 
    isClassAppliedAtLoad = true; 
} 

並且在你的mouseover事件中你可以檢查這個變量。