Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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 WebKittTransitionEnd事件侦听器触发两次_Javascript_Events - Fatal编程技术网

Javascript WebKittTransitionEnd事件侦听器触发两次

Javascript WebKittTransitionEnd事件侦听器触发两次,javascript,events,Javascript,Events,我试图编写一个WebKittTransitionEnd eventListener的回调函数,但由于某些原因,eventListener被触发了两次(doSomething被执行了两次) 如果不调用doSomething两次,这在Safari 5.1上是不起作用的。我不想在第一次运行时删除eventListener,我只希望它在类更改时执行一次 Live在做了一些调查之后,我觉得对于两个不同的事件,handleEvent被分别调用一次,这两个事件在propertyName中有所不同–第一个事件的

我试图编写一个WebKittTransitionEnd eventListener的回调函数,但由于某些原因,eventListener被触发了两次(doSomething被执行了两次)

如果不调用doSomething两次,这在Safari 5.1上是不起作用的。我不想在第一次运行时删除eventListener,我只希望它在类更改时执行一次


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();
    }
}