移动端tap事件

自己写了个tap模拟插件,PC上没问题,手机上总是在touchend 的event.target得到不确定是什么的东西

document.body.addEventListener('touchend', function (e) {
    deltaX = Math.abs(deltaX);
    deltaY = Math.abs(deltaY);
    var el = e.target;
    alert(e);//[object TouchEvent]
    alert(el.nodeName);//undefined
    alert(el.nodeType);//undefined
    if(el.nodeType === undefined) return;
    if(deltaX < 20 && deltaY < 20){
        //var tapEvent = new Event(tapType);
        var tapEvent = new Event(tapType, {
                bubbles: true,
                cancelable: true
        });
        cancelled  = !el.dispatchEvent(tapEvent);
        if(cancelled){
            e.preventDefault();
            return false;
        }
    }
    deltaX = deltaY = 0;
}, false);

上面的alert结果是这样,点到的东西应该不是undefined才对吧,帮忙看下,或者应该怎么调试这个问题。

有个两个问题忘记说了,我点击的元素是svg,另外iOS暂时没有发现类似问题,只是Android

阅读 4.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题