仅在使用jquery进行时删除attr

时间:2011-01-13 06:54:37

标签: jquery

我有一个菜单,鼠标悬停将添加attr类。 如果选择了选定的选项卡并且使用它重新加载页面,则它具有此类

我希望在鼠标输出时我只能删除添加的类,如果它是我刚添加的那个而不是加载到页面的那个 - 我怎么能?

3 个答案:

答案 0 :(得分: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");
   }
});

答案 1 :(得分: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");
});

答案 2 :(得分:0)

您可以在页面加载时设置变量。

var isClassAppliedAtLoad = false;

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

在您的鼠标悬停事件中,您可以检查变量。