📜  如何绑定“touchstart”和“click”事件但不响应两者?(1)

📅  最后修改于: 2023-12-03 14:53:14.553000             🧑  作者: Mango

如何绑定 "touchstart" 和 "click" 事件但不响应两者?

在移动端开发中,我们通常需要同时支持 touch 和 click 事件,因为不同的设备可能会有不同的事件支持。但是,有些情况下,我们希望 touch 和 click 事件不发生冲突,即仅在触屏设备上触发 touch 事件,在桌面设备上仅触发 click 事件。

为了实现这一点,我们可以使用以下代码:

var isTouchDevice = 'ontouchstart' in document.documentElement;
var eventType = isTouchDevice ? 'touchstart' : 'click';

element.addEventListener(eventType, function(event) {
  // 处理事件逻辑
});

这段代码首先检测设备是否支持 touchstart 事件,并根据结果选择要绑定的事件类型(如果支持,则为 touchstart,否则为 click)。然后,将事件类型传递给 addEventListener 方法,绑定事件处理程序。

这样,我们就可以在移动端上捕获 touch 事件,并在桌面端上捕获 click 事件,而不会出现两者同时响应的情况。

以上是我对于“如何绑定‘touchstart’和‘click’事件但不响应两者?”的介绍。