Javascript WebKittTransitionEnd事件侦听器触发两次
我试图编写一个WebKittTransitionEnd eventListener的回调函数,但由于某些原因,eventListener被触发了两次(doSomething被执行了两次) 如果不调用doSomething两次,这在Safari 5.1上是不起作用的。我不想在第一次运行时删除eventListener,我只希望它在类更改时执行一次Javascript WebKittTransitionEnd事件侦听器触发两次,javascript,events,Javascript,Events,我试图编写一个WebKittTransitionEnd eventListener的回调函数,但由于某些原因,eventListener被触发了两次(doSomething被执行了两次) 如果不调用doSomething两次,这在Safari 5.1上是不起作用的。我不想在第一次运行时删除eventListener,我只希望它在类更改时执行一次 Live在做了一些调查之后,我觉得对于两个不同的事件,handleEvent被分别调用一次,这两个事件在propertyName中有所不同–第一个事件的
Live在做了一些调查之后,我觉得对于两个不同的事件,
handleEvent
被分别调用一次,这两个事件在propertyName
中有所不同–第一个事件的propertyName
为“不透明”
;另一个具有“-webkit转换”
我假设对于完成动画的每个CSS属性总是调用一次handleEvent
,然后对整个转换块调用一次带有“-webkit transform”
为了修正你的例子,我相信这会起作用:
Something.prototype.handleEvent = function(event) {
event.stopPropagation();
if ( event.propertyName === "-webkit-transform" ) {
this.doSomething();
}
}
这就解决了问题。我早该知道每次转换都会触发一次!谢谢你,刚刚解决了我一直遇到的问题!另外,对于任何使用jquery的人,你都可以使用event.originalEvent.propertyName来完成。我也有同样的问题,但在我的例子中,它会为同一个道具触发两次!!?
Something.prototype.handleEvent = function(event) {
event.stopPropagation();
if ( event.propertyName === "-webkit-transform" ) {
this.doSomething();
}
}