jQuery UI 按钮 - 保持活动状态,忽略悬停状态

Posted

技术标签:

【中文标题】jQuery UI 按钮 - 保持活动状态,忽略悬停状态【英文标题】:jQuery UI buttons - keep active state, ignore hover state 【发布时间】:2012-04-26 18:49:08 【问题描述】:

正如前面另一个问题中提到的,我有一个系统,它可以显示内容并根据哈希标签突出显示一个按钮。这在大多数情况下都可以正常工作,但是如果您将鼠标悬停在按钮上,它就会失去其活动状态。

这里是问题的[工作示例][1]

我试过.hover(function() return false;);,但不幸的是这不起作用(虽然我想我没想到它会......!)。我还尝试禁用该按钮(然后在单击另一个按钮时重新启用它),这在 Firefox 中是完美的,但在 IE7 中文本显示为灰色。

非常感谢任何帮助或建议,谢谢:)

【问题讨论】:

您刚刚链接到http://localhost。在某些论坛中,这几乎与[img]file:///C:/Users/..../me.jpg[/img] 一样聪明:p 将 localhost 替换为您的 ip 地址或发布演示到jsfiddle.net 天哪,我不敢相信我做到了!更新了链接,这是为了指出那些家伙:-) 制作一个 jsfiddle 比通过现场评分更容易让我们找到问题。 我看不到问题和代码,因为它不是 jsfiddle.... 这个答案就这么多。 【参考方案1】:

首先,您的按钮提交#,它不会使链接转到另一个页面,但会产生一些不需要的滚动。你应该避免这样。

$('#showScarringReports').click(function(ev) ev.preventDefault(); );

之后,如果您希望保持活动状态,您可以禁用事件处理程序,使其从活动状态切换回原来的状态。再次以第一个为例。

$('#showScarringReports').unbind('mouseout keyup mouseup hover');

一旦处于活动状态,它将保持活动状态,要删除活动状态,然后只需从按钮中删除类 ui-state-hover。

【讨论】:

哇,这太完美了——非常感谢!您不仅解决了问题,还解决了另一个问题 - 非常感谢,谢谢:)【参考方案2】:

另一个解决方案对我不起作用,所以我不得不使用这个:

$('#my-button')
    .button(disabled:true)
    .removeClass('ui-state-disabled')
    .addClass('ui-state-active') //permanently pressed
    .addClass('ui-state-hover')  //or permanently highlighted
;

【讨论】:

以上是关于jQuery UI 按钮 - 保持活动状态,忽略悬停状态的主要内容,如果未能解决你的问题,请参考以下文章

jQuery UI Slider范围:保持按钮在范围内[关闭]

保持 php 会话处于活动状态并可以从 jquery 访问

ajax刷新后如何使jquery选择器保持活动状态

重新加载页面后保持按钮处于活动状态(使用 PHP 和 HTML)

jquery 使默认导航栏按钮处于活动状态

如何保持一个图像按钮处于活动状态,直到单击另一个