javascript - 如何清除触摸屏 "touched"按钮焦点、事件、悬停

标签 javascript jquery html css

试图弄清楚如何将按钮重置回“未触及”状态。我正在使用一个按钮:

    <div id="service-control-buttons" data-role="controlgroup" data-type="horizontal">
        <a href="#" id="service-previous" data-role="button" data-icon="arrow-l">Prev</a>
        <a href="#" id="service-next" data-role="button" data-icon="arrow-r" data-iconpos="right">Next</a>
    </div>

当我(在我的 iPad 上)点击 Next 或 Prev 时,它会运行我编写的 javascript 函数,然后按钮保持永久事件、悬停或聚焦(不确定状态)。

我的目标:在 javascript 函数运行后,我想将按钮重置为未激活、未悬停或未聚焦状态。当然,这不会发生在非触摸屏鼠标点击上。

我试过了:
$(another-selecter).focus();
$(another-selecter).click();
$('#service-next').blur();


$('#service-next').css('background-color', 'original-color') 

有效,但当然,这完全是突出显示的结束,我不希望这样。我不想手动设置 css,因为我使用的主题将来可能会改变,并且希望尽可能避免黑客攻击。

最佳答案

为防止这种情况,您可以使用 CSS 文件中的以下 @media 自定义触摸屏的悬停效果。

@media (hover: none) and (pointer: coarse) {
   /* Add hover styles here */
}
用例示例
假设我们有一个 ID 为 btn-one 的按钮具有透明背景颜色但悬停效果将其更改为红色。
通过应用下面的代码,当使用触摸设备的用户与应用程序交互时,@media 将触发样式更改。在悬停时保持背景颜色透明。通过这种方式,我们可以防止按钮具有粘性行为。
相反,如果设备不是触摸屏,则悬停样式将像此 @media 不存在一样工作,因此通常悬停时 bg 颜色会发生变化。
@media (hover: none) and (pointer: coarse) {
  #btn-one:hover {
    background-color: transparent!important;
    color: black;
  }
}

关于javascript - 如何清除触摸屏 "touched"按钮焦点、事件、悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32855843/

相关文章:

jquery - 如何将图像文件和表单数据从 Ajax 传递到 MVC Controller

javascript - 浏览器窗口之间是否可以进行基于事件的通信?

html - CSS 内置内容不工作

html - 去除图像周围的边框

函数中的 JavaScript 参数

javascript - Vue.js 奇怪的错误

javascript - 如何检查 Ajax 返回的 JSON 的正确性

html - 如何在没有 JavaScript 的情况下根据另一个元素的变化来设置元素的样式?

javascript - 无法使用javascript获取描述RSS标签数据

javascript - 如何在 mxgraph 中插入没有背景的图像