1

我想创建一个自定义事件来处理事件的所有不同的供应商前缀版本transitionend(即 、webkitTransitionEndmozTransitionEndmsTransitionEndW3CoTransitionEnd事件transitionend)。

理想情况下,我希望能够使用transitionend我想创建的自定义事件,如下所示:

elem.addEventListener('myTransitionEnd', function (evt) {
  // Called whenever any transitionend event fires.
});

不幸的是,我不知道如何做到这一点。我正在研究document.createEvent,但我无法弄清楚如何使用document.createEventinitEvent实际dispatchEvent让我的自定义transitionend事件在任何适用transitionend的事件触发某些任意 DOM 元素时触发,这些元素是我稍后使用自定义事件设置的。

任何有关代码的帮助将不胜感激。
另外,如果有比创建自定义事件更好的方法来解决这个问题,请告诉我。
最后,我真的只是想要一个尽可能模块化的解决方案(我希望在学习的同时学习一两件事关于 JS 中的自定义事件)。

4

1 回答 1

1

一个简单的方法是创建一个包含所有 transitionend 事件的全局变量(字符串)。然后向该字符串添加一个事件监听器。例子:

//your global var:
window.endTransition = 'webkitTransitionEnd mozTransitionEnd msTransitionEnd oTransitionEnd transitionend';

//your event
elem.addEventListener(window.endTransition, function(e){
    //your awesome piece of JS
});
于 2013-10-29T13:17:35.523 回答