如何删除:悬停?

Ion*_*icu 27 javascript jquery

我的脚本有一个小问题.
我希望对已:hover禁用Javascript的客户端进行默认操作,但对于启用了Javascript的客户,我想要另一个操作(实际上......同样的操作,但我想添加一个小的过渡效果).

那么......我怎么能这样做?我正在使用jQuery.

ben*_*ley 29

将两个类应用于relvant元素.一个包含悬停行为,一个包含所有其他样式.

然后,您可以使用jquery

$(element).removeClass('hover');
Run Code Online (Sandbox Code Playgroud)

使用悬停行为删除类的方法,然后应用您想要的任何内容

$(element).bind('mouseover', function () { doSomething(); });
$(element).bind('mouseout', function () { doSomething(); });
Run Code Online (Sandbox Code Playgroud)

  • 是的,但是这种方法非常突兀:(我希望smth不那么具有侵入性:-s (4认同)
  • 我必须修改许多代码来实现这一点.但是......我认为反向也会起作用:添加一个类:D 10x(刚出现在我头顶的巨大光线!) (4认同)
  • 不太确定你的意思是突兀的? (2认同)

fox*_*oxy 18

:hover后备放在仅在禁用javascript时加载的样式表中怎么样?

<noscript>
  <link href="noscript.css" rel="stylesheet" type="text/css" />
</noscript>
Run Code Online (Sandbox Code Playgroud)

  • 很好但无效的XHTML标记.<link> -Tag必须在`head`中,<noscript>标签必须在`body`中.从HTML5开始,noscript被允许在`head`中,因此标记是有效的HTML5,可能不是问题. (6认同)

kin*_*rey 12

这是一个没有黑客类的解决方案:

CSS:

a {color: blue;}
a:hover {color: red;}
Run Code Online (Sandbox Code Playgroud)

jQuery(使用jQueryUI为颜色设置动画):

$('a').hover( 
  function() {
    $(this)
      .css('color','blue')
      .animate({'color': 'red'}, 400);
  },
  function() {
    $(this)
      .animate({'color': 'blue'}, 400);
  }
);
Run Code Online (Sandbox Code Playgroud)

演示