javascript - 触摸事件上的按钮背景颜色与单击事件上的按钮背景颜色不同

标签 javascript android jquery touch

我试图在每次点击(桌面设备)或触摸事件(智能手机)后将按钮颜色更改回红色。

Here working example from codepen

代码:

$(
  function(){    
    $("#btnAdd").mouseenter(function () {
          jQuery("#btnAdd").css("background-color", "black");
      }).mouseleave(function () {
          jQuery("#btnAdd").css("background-color", "#d80000");
      });    
  }  
);

它对于点击事件效果很好。但是,它不适用于触摸事件。颜色保持黑色。如何在手机上模拟“mouseleave”事件?似乎只触发了“mouseenter”事件,因为颜色更改为黑色并且保持黑色,直到单击其他元素。

我也尝试过 mousedown 和 mouseup 事件,但最终结果是相似的。在桌面上一切正常,在智能手机上颜色保持黑色。

最佳答案

您可以使用 on() 方法在代码中添加 mousedown 和 touchstart 事件。

$(function() {
  $("#btnAdd").on('mousedown touchstart', function () {
    jQuery("#btnAdd").css("background-color", "black");
  }).on('mouseup touchend', function() {
    jQuery("#btnAdd").css("background-color", "red");
  }); 
});

这是工作示例:http://codepen.io/anon/pen/JKxEBJ

<小时/>

另外,为什么不使用 CSS :active 来实现这个效果呢?

关于javascript - 触摸事件上的按钮背景颜色与单击事件上的按钮背景颜色不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38933398/

相关文章:

javascript - JQuery:动态更新 HTML,以便 JQuery 识别它

javascript - dijitReset 类的用途是什么?

android - 将封面艺术添加到 Android 上下载的 mp3

Javascript 鼠标悬停函数

android - 如何在空的edittext上更改 Material TextInputLayout提示颜色?

android - Android.mk中TARGET_ARCH_ABI是怎么设置的

jquery - 我如何在 jQuery Mobile 默认导航栏中有一个更大的中心底部导航栏按钮?

javascript - 检测输入是否有焦点

javascript - 在 JavaScript 中使用 setInterval 更新文本字段

javascript - WebGL 片段着色器构造函数错误 - 参数太多