在touchstart
、touchmove
和touchend
事件处理程序中,在什么情况下Touch.target
将不同于Event.target
简单的测试表明它们总是相同的,但我可能遗漏了边缘情况。
function onTouchstart(event: TouchEvent) {
console.log(event.target === event.changedTouches[0].target);
}
发布于 2020-01-05 18:49:27
我发现了一个不一样的案例。使用capture: true
时,Touch.target
在访问textarea
时返回div
节点,而不是textarea
节点。这种行为相当奇怪,可能是个bug。
window.addEventListener('touchstart', (e) => {
document.getElementById('x').textContent = e.changedTouches[0].target.nodeName + '\n' + e.target.nodeName;
}, {capture: true})
#x {
width: 400px;
height: 400px;
}
<textarea id="x"></textarea>
https://stackoverflow.com/questions/59569465
复制相似问题