这似乎很简单。通常我们会这样做
e.preventDefault();
取消活动,其中e
是一个事件。但是在这种情况下,我想在Polymer创建的custom track
event内取消touchmove
事件。
通过检查e.detail
,我们可以看到e.detail.sourceEvent
属性包含原始Touch
事件。 (更正:它是Touch
个对象而不是事件。问题与取消原始touchmove
事件的方法相同。) < /子>
我试图通过常用方法取消它:
e.detail.sourceEvent.preventDefault();
令人惊讶的是它没有用。该事件根本不存在.preventDefault
。
所以问题是如何取消此Touch
事件?我试图通过取消此事件来暂时使元素不可滚动。
答案 0 :(得分:2)
我能想到的最简单的解决方案是在第一个事件结束时触发所有必要的事件,然后停止传播。这是一个想法的原型:
_firstEventThatWouldFire: function(e) {
... do some stuff
this.fire('necessaryEvent1');
this.fire('necessaryEvent2');
e.stopPropagation(); // this prevents unNecessaryEvent3 from being triggered
}
希望得到帮助。
答案 1 :(得分:0)
您是否尝试过e.detail.sourceEvent.cancelBubble = true
和e.detail.sourceEvent.stopPropagation()
?
答案 2 :(得分:0)
您似乎可以在触摸事件now上致电Set<StringBuilder> setsb = new TreeSet<>(Comparator.comparing(Object::toString));
。