我有以下 JavaScript 代码:
$('#s2 a').click(function(){
var cB = $(this);
var f = parseInt(cB.attr('data-f'));
var r = parseInt(cB.attr('data-r'));
var c = parseInt(cB.attr('data-c'));
if (pA == false && !isClickAllowed(f,r,c)) {
return false;
}
// more stuff comes here
}
这使得链接不可点击。这一切都有效。我还想删除悬停效果。 CSS 代码是:
.pc a:hover {
background-color: #FFF;
我认为删除该类会像:cB.removeClass('pc');
但这不起作用。
关于如何做到这一点有什么建议吗?
感谢您的宝贵时间
--编辑--
嗯,我想我明白为什么它不起作用了。在文档的顶部我有这个:
$(document).ready(function() {
setScale();
$(window).resize(setScale);
if (!('ontouchstart' in document)) {
$('body').addClass('pc');
}
more code here
当在 PC 而不是触摸设备(例如 iPad)上打开页面时,这会为所有链接设置 .pc a:hover
。我需要仅在链接不可点击时禁用此电脑悬停,如下所示:
if (pA == false && !isClickAllowed(f,r,c)) {
return false;
}
希望这有帮助!
最佳答案
cB 是 anchor ,它没有被您指定的 CSS 类引用,父级将具有类 pc
为了这个工作。 cB.parent().removeClass('pc');
会做到的。
-- 编辑--
根据下面的博学评论,似乎cb.parents('.pc').removeClass('pc')
或cb.parents().removeClass('pc')
(我没有进行基准测试来看看哪个更快)将是全面的解决方案。
詹姆斯、安东尼和塔德克干得好!
-- 编辑 2--
在问题更新之后,我建议在您的链接中添加另一个类,即 clickable
,那么你的 CSS 就变成了:
.pc a.clickable:hover {
background-color: #FFF;
您只需删除clickable
即可类上那些您不想显示突出显示的链接。更好的做法可能是简单地用原始文本或带有识别类的跨度替换禁用的链接,即 disabled_link
如果您想稍后选择启用它们。
关于javascript - 删除:hover in javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8990346/