Compose for Desktop中拦截子元素button的touch事件和click事件
要拦截子元素button的touch事件和click事件,可以使用事件委托的方式。具体实现如下:
- 给父元素添加一个事件监听器,监听touch和click事件。
- 在事件监听器内部判断触发事件的元素是否为button元素的子元素。
- 如果是,则阻止事件的默认行为和冒泡。
示例代码如下:
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事件了
原文地址: https://www.cveoy.top/t/topic/ifRV 著作权归作者所有。请勿转载和采集!