从dom中删除任何元素后,Touchmove事件将停止触发

时间:2015-04-01 07:16:14

标签: javascript html5 touch mobile-safari

在iPad等触控设备上(或镀铬中的移动仿真模式)。在身体上跟踪touchmove事件并从身体停止触发的dom touchmove事件中删除元素(启动touchstart时)。

我制作了示例http://jsbin.com/yinodosuxo/1/edit?js,console,output

即使删除了子元素,touchmove还有什么方法可以继续工作吗?

1 个答案:

答案 0 :(得分:0)

我通过缓存元素来修复此问题,直到发出touchend事件。 触发touchstart事件的视图的伪代码如下所示:

view.remove = function () {
  if (didViewStartTouchEvents) {
    var _this = this;
    this.hideElement(); // display: none, opacity: 0, etc
    elementCache.appendChild(this); //append this element to some other place like body. Not needed but might be handy depending on situation
    document.body.addEventListener('touchend', function () {
      _this.didViewStartTouchEvents = false;
      _this.remove();
    });
  } else {
    // regular remove & cleanup
  }
}