我有一個菜單,鼠標將添加attr類這個。 如果一個選定的選項卡被選中,頁面被重新加載它,它有這個類刪除attr只有當與jquery
我希望在鼠標出,我將能夠刪除添加的類,只有當它是我剛剛添加,而不是一個是與頁面加載 - 我怎麼能?
我有一個菜單,鼠標將添加attr類這個。 如果一個選定的選項卡被選中,頁面被重新加載它,它有這個類刪除attr只有當與jquery
我希望在鼠標出,我將能夠刪除添加的類,只有當它是我剛剛添加,而不是一個是與頁面加載 - 我怎麼能?
有幾種方法可以做到這一點。一種方法是使用數據。
$("whatever").mouseover(function(){
if (!$(this).hasClass("someClass")) {
$(this).addClass("someClass").data("addedByMe",true);
}
});
$("whatever").mouseout(function(){
if ($(this).data("addedByMe") == true){
$(this).removeClass("someClass");
}
});
我會建議使用兩個CALSS名稱(如selected
和focused
)。
因此,當您選擇一個選項卡時,您將selected
類添加到它。鼠標懸停事件僅改變focused
類。
如果需要,您可以將selected
和focused
都設置爲具有相同的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");
});
您可以在頁面加載時設置變量。
var isClassAppliedAtLoad = false;
if ($("#yourelement").hasClass("yourclassname")) {
isClassAppliedAtLoad = true;
}
並且在你的mouseover事件中你可以檢查這個變量。