Javascript 如何取消由Polymer创建的事件
这似乎很简单。通常我们会这样做Javascript 如何取消由Polymer创建的事件,javascript,events,polymer,Javascript,Events,Polymer,这似乎很简单。通常我们会这样做 e.preventDefault(); 要取消事件,其中e是一个事件。但是,在本例中,我希望取消由Polymer创建的内部的touchmove事件 通过检查e.detail,我们可以看到e.detail.sourceEvent属性包含原始的Touch事件。(更正:它是一个Touch对象,而不是一个事件。问题与如何取消原始touchmove事件相同。) 我尝试用常用的方法取消它: e.detail.sourceEvent.preventDefault(); 令人
e.preventDefault();
要取消事件,其中e
是一个事件。但是,在本例中,我希望取消由Polymer创建的内部的touchmove
事件
通过检查e.detail
,我们可以看到e.detail.sourceEvent
属性包含原始的Touch
事件。(更正:它是一个Touch
对象,而不是一个事件。问题与如何取消原始touchmove
事件相同。)
我尝试用常用的方法取消它:
e.detail.sourceEvent.preventDefault();
令人惊讶的是,它没有起作用.preventDefault
对于该事件根本不存在
因此,问题是如何取消此
Touch
事件?我正试图通过取消此事件来暂时使元素不可滚动来进行更改。您是否尝试过e.detail.sourceEvent.cancelBubble=true
和e.detail.sourceEvent.stopPropagation()
?我能想到的最简单的解决方案是在第一个事件结束时触发所有必要的事件,然后停止播放。以下是这个想法的原型:
_firstEventThatWouldFire: function(e) {
... do some stuff
this.fire('necessaryEvent1');
this.fire('necessaryEvent2');
e.stopPropagation(); // this prevents unNecessaryEvent3 from being triggered
}
希望您能提供帮助。似乎您可以在触摸事件上调用
e.preventDefault()
。这些都不起作用,因为sourceEvent
根本不是真正的事件。相反,它只是一个触摸对象。