javascript - jQuery:悬停和单击时在按钮上切换具有相同特性的类

标签 javascript jquery html css

我有以下样式:

button {
    background-color: blue;
}
.green {
    background-color: green;
}
.red {
    background-color: red;
}

以及以下 jQuery:

    $('button').click(function(e) {
        $(this).toggleClass('red');
    });
    $('button').hover(function(e) {
        console.log('hoverin');
        $(this).toggleClass('green');
    });

我希望所有按钮都具有以下功能:

单击按钮时,它应该在红色和蓝色背景之间切换。当鼠标悬停在按钮上时,它应该切换绿色背景。仅当背景为蓝色时,这在上面的代码中才有效。我假设这是因为 css 特异性。

如果是这种情况,并且我希望所有按钮都具有此功能,当它们具有相同的 css 特异性时,我如何在红色和绿色之间切换?

fiddle 链接:http://jsfiddle.net/rtq2yoxx/

最佳答案

快速解决方案:将 .green 样式移到最后:

button {
    background-color: blue;
}
.red {
    background-color: red;
}
.green {
    background-color: green;
}

Updated Fiddle

您也可以避免使用 hover() 方法,而改用 CSS3 hover:

button:hover {
    background-color: green;
}

Fiddle 2

关于javascript - jQuery:悬停和单击时在按钮上切换具有相同特性的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32467539/

相关文章:

javascript - METEOR:粘贴事件(客户端)来调用meteor方法

javascript - 如何在同一个应用程序中使用 2 个具有不同 baseURL 的 Axios 实例 (vue.js)

javascript - 我的加速度计和canvas 2d 做错了什么?安卓

HTML/CSS 两个相邻的搜索框

javascript - jQuery 动画的几个问题

javascript - 将函数的结果插入 div 属性

php - jqueryui自动完成限制多项选择

jquery - 使用 jquery 更改图像背景

javascript - 动画正在降低网页的性能

javascript - 控制台在基本的 jquery 代码上显示 "$ is not defined"