插入子dom元素或更改其类时的回调?

时间:2012-05-18 05:13:22

标签: callback ember.js

在Ember.js中,我有一个

的视图
{{#if obj.property}}
    <div {{bindAttr class="prop"}}>content</div>
{{/if}}

如果将此元素插入到视图中,以及何时将类附加到元素上,我怎么能回调?我想这样做是因为CSS类是一个动画类,我想挂钩元素的onAnimationEnd事件,以便在动画结束时收到通知。

2 个答案:

答案 0 :(得分:2)

如何将div更改为实现didInsertElement的自定义视图子类? e.g。

{{#if obj.property}}
    {{view App.MyView}}
{{/if}}

App.MyView = Ember.View.extend({
  classNameBindings: "prop",
  didInsertElement: function() {
     // use this.$() to get a jQuery handle for the element and do what you'd like 
  }
})

答案 1 :(得分:0)

除了Luke的答案,我发现了另一种实现这一目标的方法,这可能更为可取,因为Luke的方法需要创建一个视图。

通过利用DOM事件冒泡的事实,我可以在包含可能插入的内容的父DOM元素上为animationEnd设置事件处理程序。 E.g。

<div id="container">
{{#if obj.property}}
    <div {{bindAttr class="prop"}}>content</div>
{{/if}}
</div>

// view.js
didInsertElment: function() {
    this.$('#container').bind('webkitAnimationEnd', function(e) {
        // e.target is the element whose animation ended.
    }
}