2

我已经使用 css 为某些元素分配了悬停状态。在特定事件之后,我想使用 jQuery 更改悬停状态。我想更改我在 css 文件中提到的 :hover 类选择器。我知道我可以实现 using.hover函数,但我不想使用它,因为这不适合我的应用程序。在我的应用程序中,悬停状态的这种变化会持续一段时间,这意味着在特定时间之后我必须取消绑定悬停事件。但是在我的应用程序中有许多条件模块,我需要在其中调用此取消绑定事件。许多低效的电话取消绑定我不想要的东西。

elem {
  width:10px;
}
elem:hover {
  width:20px;
}

我想hover从 say 更改状态的宽度20px to 40px。我想使用一些简单的东西,.css('width','100px')但是如何在:hover选择器上调用这个函数。

4

3 回答 3

2

据我所知,您只能通过悬停事件影响悬停:

$('#selector').hover( 
  function() { $(this).css('width','100px'); }, 
  function() { $(this).css('width','10px'); }
});

作为替代方案,您可能希望使用addClassremoveClass动态地将 css 类分配给给定的元素,因此基本上当您希望元素具有悬停的 css 类时,您可以这样做:

$('#selector').addClass('hovered');

并且您希望您的元素具有正常的课程:

$('#selector').removeClass('hovered');

这不会真正取代悬停事件,但这样您可以随时更改 css 类。

于 2012-06-09T10:55:57.433 回答
1

您可以加载另一个覆盖 elem:hover 定义的样式表(或将样式节点附加到 head)和

elem:hover {
    width: 100px !important;
}

这是一个大意的问题。

(不过,不断绑定和取消绑定悬停事件听起来很可疑。您可能需要考虑导致您发布此问题的行为本身是否不是问题。)

于 2012-06-09T11:07:50.423 回答
0

您可以使用 jQuery 添加一个类,该类在您的 CSS 中应用了悬停选择器。

例如

elem {
  width:10px;
}
elem:hover {
  width:20px;
}
elem.jsApplied:hover {
  width:40px;
}
于 2012-06-09T11:27:01.037 回答