禁止禁用按钮上的光标变为手形

21

可能是重复问题:
如何使用jQuery禁用链接并更改光标以防止其被单击?

我有一个按钮,我试图在某些情况下禁用它,因为它的功能是不必要或不可能的。它是页面上许多按钮中的一个,我只想禁用这个特定的按钮。

我想要的效果是将其变灰,不能点击,并且当鼠标悬停在按钮上时,鼠标指针不会变成手指指针。

我已经成功完成了前两个目标,但不确定如何实现第三个目标。当我搜索时,我看到了全局禁用此行为的建议,但没有针对特定按钮的建议。

以下是我目前的代码。

if(buttonIsDisabled)
{
    var btnid ="#button"+index;
    $(btnid).attr("disabled","disabled").fadeTo(500,0.2);
}

这段代码可以成功地使按钮无法点击并淡化它,但在Firefox和Chrome中,当鼠标悬停时仍会显示手形图标。IE8(我也需要支持)正确地禁用了手形图标并显示了光标。
有没有建议如何在Chrome和Firefox中实现IE的行为?

1
你尝试过使用CSS进行样式设置吗?例如cursor:default - j08691
@j08691 我只想有时动态地完成这个任务,但是jQuery的.css解决方案显然很合理。 - Ben McCormick
@Diodeus 说得好,我进行了一些搜索,但是我只搜索了与按钮相关的内容,并没有看到“禁用链接”帖子。 - Ben McCormick
3个回答

31

你可以将"cursor"规则设置为"默认(default)"。在jQuery中,您可以使用css方法。

$(btnid).css("cursor", "default");

由于您已经在使用$(btnid),因此您可以像这样链接调用:

$(btnid).attr("disabled","disabled").css("cursor", "default").fadeTo(500,0.2);

非常感谢,你提供了我想要的准确内容! - Ben McCormick
这样的代码 .css("cursor", "pointer !important"); 也可以起作用吗?使用 !important 来覆盖其他样式吗? - Kala J
@KalaJ - 是的,它应该可以工作,但唯一应该这样做的原因是如果你正在尝试覆盖一个覆盖。jQuery中的css函数设置匹配的dom元素的样式属性字段。默认情况下,这应该具有最高的特殊性,所以没有必要使用!important,除非较低特殊性匹配的规则也使用了!important。如果所有这些听起来都像胡言乱语,那么一个好的经验法则是要谨慎地使用!important。请参阅http://css-tricks.com/specifics-on-css-specificity/和http://css-tricks.com/when-using-important-is-the-right-choice/。 - Seth Flowers

5
你可以像这样设置CSS:
$(btnid)
  .attr("disabled","disabled")
  .css('cursor','default')
  .fadeTo(500,0.2);

5
你也可以给按钮设置样式 cursor: default

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