要拦截子元素button的touch事件和click事件,可以使用事件委托的方式。具体实现如下:

  1. 给父元素添加一个事件监听器,监听touch和click事件。
  2. 在事件监听器内部判断触发事件的元素是否为button元素的子元素。
  3. 如果是,则阻止事件的默认行为和冒泡。

示例代码如下:

const parentElement = document.querySelector('#parent-element');

parentElement.addEventListener('touchstart', function(event) {
  const targetElement = event.target;
  if (targetElement.tagName === 'BUTTON' && parentElement.contains(targetElement)) {
    event.preventDefault();
    event.stopPropagation();
  }
});

parentElement.addEventListener('click', function(event) {
  const targetElement = event.target;
  if (targetElement.tagName === 'BUTTON' && parentElement.contains(targetElement)) {
    event.preventDefault();
    event.stopPropagation();
  }
});

上述代码中,parent-element是父元素的id,你需要根据实际情况替换为你的父元素的选择器。代码中使用了event.preventDefault()来阻止默认行为,使用event.stopPropagation()来阻止事件冒泡。这样就可以拦截子元素button的touch事件和click事件了

Compose for Desktop中拦截子元素button的touch事件和click事件

原文地址: https://www.cveoy.top/t/topic/ifRV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录