我需要向webkitTransitionEnd
中的DOM
元素之一添加EmberView
事件监听器。
这个javascript(DOM)等价物是:
function transitionEnded() {
console.log("transition ended");
}
document.getElementById('foo').addEventListener(
"webkitTransitionEnd",
this.transitionEnded,
true);
我尝试了以下内容:
var MessageView = Ember.View.extend({
...
transitionEnded: function() {
console.log("Transition Alert!");
},
actions: {
closeMessageWithTransition: function(){
var elem = document.getElementById('transitionThis');
elem.addEventListener(
"webkitTransitionEnd", this.transitionEnded, true);
// Trigger the transition here
}
...
我也尝试过使用:
this.$("#transitionThis").get(0).addEventListener(...);
而不是使用:
var elem = document.getElementById('transitionThis');
elem.addEventListener(...);
但无济于事。转换发生了,但我没有得到任何事件,也没有在控制台中看到错误。
我可以确认document.getElementById
方法选择了正确的元素。那么,我的事件处理程序在哪里?
编辑1 :没有意识到有一个emberjs.jsbin.com。那么,你走了:
PS:我确实意识到我正在附加一个监听器的元素最终会在transitionTo('messages')
中被销毁,但我已经注释掉了这一点但仍然没有效果。
编辑2 :我添加了另一种方法,尝试使用Ember.View文档中概述的EventManager
来捕获事件。
答案 0 :(得分:0)
看起来它正在使用动画,而不是过渡,webkitAnimationEnd
是合适的钩子。