是否有任何类似touchUpOutside的活动是iOS? touchDragInside? touchDragOutside? P>
任何类型的事件都是从元素上的touchstart开始,但是被拖到Element的框架之外?
答案 0 :(得分:2)
W3C定义了一个touchleave
事件,但在我的实验中,它还没有在Mobile Safari中实现。但是,您可以结合使用touchstart
和touchmove
事件来解决此问题:
window.addEventListener('load', function() { // on page load
var element;
document.addEventListener('touchstart', function(event) {
event.preventDefault();
var touch = event.touches[0];
element = document.elementFromPoint(touch.pageX,touch.pageY);
}, false);
document.addEventListener('touchmove', function(event) {
event.preventDefault();
var touch = event.touches[0];
if (element !== document.elementFromPoint(touch.pageX,touch.pageY)) {
var event = new CustomEvent("touchleave", { detail: { touches: event.touches, }, bubbles: false, cancelable: false });
element.dispatchEvent(event);
}
}, false);
}, false);
你可以在这样的特定元素上监听事件:
var box = document.getElementById('box');
box.addEventListener('touchleave', function(e) {
// Handle the touch leave event here
}, false);