javascript - 删除:hover in javascript

标签 javascript jquery removeclass

我有以下 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/

相关文章:

javascript - NestJS 依赖注入(inject)错误 : provider/module is not part of currently processed module

javascript - 使用 prevent default 接管空格键

javascript - POST 数据到 python 脚本

javascript - 调用 DOM 提交方法时未触发 jQuery 提交事件

javascript - jQuery 中带有悬停类的弹出菜单(尝试使用 <ul> 复制选择框)

javascript - .select() 在 Chrome 中无法正常运行

javascript - 我需要什么才能真正开始使用 emberjs?

jquery - 内联脚本到 jQuery 函数以淡化动态页面上的图像

javascript - 无法删除/将元素类别切换回 `is-inactive`

jQuery removeClass 持续时间不起作用?