2013-12-12 32 views
2

我需要一個webkitTransitionEnd事件監聽器在我EmberView添加到DOM要素之一。恩貝爾:的document.getElementById等效(「富」)的addEventListener

這個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。所以,在這裏你去:

Emberjs.jsbin

PS:我不知道該元素我附加了一個監聽器,最終得到後來被毀時transitionTo('messages')但我已經註釋掉了一下,還是沒有效果。


編輯2:我已經添加的追趕使用EventManagerEmber.View文檔概述的事件的替代方法。

Alternate Method

+0

你可以建立一個例子,隨意使用於Emberjs.jsbin.com – Kingpin2k

+0

@ kingpin2k我已經成立了一個例子模板。謝謝。 –

回答