您如何摆脱 "pressed" class 点击 <div> 时随机弹出的问题?

How do you get rid of a random "pressed" class popping up on <div> click?

我目前有一个 div,我正试图将其制作成一个点赞按钮,单击它时它会切换到另一个图像,再次单击时又会返回......

我遇到了一个问题,每次我点击 div 图片时,它都会添加一个名为 "pressed" 的 class,而第二张图片只会保留到我松开手指为止的左键单击。

我正在使用 phonegap 和 Intel 移动框架来帮助 html、css 和 javascript。

有没有什么方法可以禁止点击时弹出这个功能,或者我能做些什么来用更简单的方法让两张图片在点击时交换?

感谢您的帮助。我对此有点陌生。

HTML

<td align="right">
   <div class="like_button"></div>
</td>

CSS

    .like_button {
    background-color: transparent;
    border-color: transparent;
    border:0px;
    background-image: url(../img/like_button.png);
    background-size: 52px 52px;
    height: 52px;
    width: 52px;
}

    .like_button:active {
    background-image: url(../img/liked_button.png);
    background-size: 52px 52px;
    height: 52px;
    width: 52px;
}

JAVASCRIPT

jQuery('like_button').click(function(){
   jQuery(this).toggleClass('active');
});

您需要将 CSS 中的 .like_button:active 更改为 .like_button.active

而且 jQuery('like_button') 在 jQuery 代码中应该是 jQuery('.like_button')

就像 lmgonzalves 在评论中所说的那样,我认为问题与 :active 伪选择器有关,它主要用于在它时改变元素的状态正在被激活(被点击或以其他方式激活),因此当您将手指移开时,您会体验到瞬间效果。

相反,您应该删除伪选择器并使用像 .like_button.clicked 这样的简单 class 选择器来处理状态更改 CSS。

你可以在这里看到演示:https://jsfiddle.net/k135g025/

希望对您有所帮助!