Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何取消由Polymer创建的事件_Javascript_Events_Polymer - Fatal编程技术网

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
根本不是真正的事件。相反,它只是一个触摸对象。