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

3

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

这里是一个[可工作的示例][1],展示了这个问题。

我尝试过.hover(function() {return false;});,但不幸的是这并没有起作用(虽然我也没指望它会...!)。我还尝试过禁用按钮(当你点击其他按钮时重新启用它),在Firefox中效果非常好,但在IE7中文本会变灰。

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


1
你刚刚链接到了 http://localhost。这几乎和某些论坛中的 [img]file:///C:/Users/..../me.jpg[/img] 一样聪明 :p - ThiefMaster
1
将“localhost”替换为您的IP地址或在http://jsfiddle.net上发布演示。 - Andres Ilich
哦,我的天,我简直不能相信我做了那件事!更新了链接,感谢你们指出来 :-) - Nick
1
制作一个 jsfiddle 对我们来说比在实时网站上搜寻问题要容易得多。 - Infra Stank
1
我无法看到问题和代码,因为它不是一个 jsfiddle……这个答案就这样了。 - Nicholas Decker
2个回答

4

首先,您的按钮正在提交“#”,这不会使链接跳转到另一页,但会生成一些不必要的滚动。您应该像这样避免:

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

如果您希望保持活动状态,则可以禁用事件处理程序,使其从活动状态切换回先前状态。因此,以第一个为例:
$('#showScarringReports').unbind('mouseout keyup mouseup hover');

一旦激活,它将保持激活状态,要取消激活状态,只需从按钮中删除类ui-state-hover。

哇,太完美了 - 非常感谢你!不仅解决了问题,还修复了另一个问题 - 真的非常感谢,谢谢:) - Nick

0

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接