jquery:按钮鼠标按下状态改变

标签 jquery button mouseevent toggleclass

好吧,这应该很容易,但我似乎无法让它发挥作用。

我有一个按钮,当我单击它时,我希望它改变状态,但仅限于按下该按钮,就像任何操作系统 native 按钮一样。

这是我的代码...

$('button').live('mousedown', function(){

    $(this).addClass('down');

}).live('mouseup', function(){
    $(this).removeClass('down');
});

看起来很简单,对吧...但这行不通。当您单击它时,状态确实会发生变化...但它保持这种状态... mouseup 事件仅在您第二次单击它时起作用。

当我从 focus/blur 事件执行代码时,toggleClass 也会发生这种情况。

这里发生了什么,我怎样才能让它正常工作?

最佳答案

您应该考虑使用 CSS,因为它的显示速度比通过 Javascript 添加/删除类要快得多:

button:active { /* this is the mousedown pseudoelement */ }
input:focus, textarea:focus { /* this represents text input fields with focus */ }

关于jquery:按钮鼠标按下状态改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5026921/

相关文章:

javascript - 如何让js函数在不同页面之间保持运行?

python - Tkinter TTK 按钮粗体字体

python - 根据所选选项执行不同的功能

android - Chromebook 中的鼠标滚轮滚动行为

javascript - div - 鼠标移动时 - 向左、向右、向上、向下? (javascript)

javascript - 无法掉落超过 1 个克隆

javascript - HTML5 WebWorkers,定时功能

Java 按钮 Action 监听器会触发其他监听器吗?

c++ - 释放 Allegro 鼠标按钮

javascript - 每当我执行推送状态时,Statechange 就会触发