如果渲染任何其他视图,则重新渲染骨干视图

时间:2012-11-01 19:20:48

标签: javascript backbone.js backbone-events

每当一个包含.tooltip类的元素被鼠标悬停时,我会弹出一个TooltipView,并获取该元素data-tooltip属性的内容,并将其显示在工具提示中。
我在其初始化函数中绑定了TooltipView的事件,但问题是如果动态创建另一个视图,或者重新渲染,则TooltipView不知道它。

var tooltipView =  Backbone.View.extend({
    el: '#tooltip-container',

    initialize: function() {
        $('.tooltip').on('mouseover', function() {
             ....
        }
    }
}

我知道我可以在渲染时手动触发每个视图中的事件,但是只能从TooltipView中进行操作吗? 我希望TooltipView能够监听任何视图以进行渲染,然后重新渲染。

1 个答案:

答案 0 :(得分:3)

将事件附加到更高的DOM级别可能对您有用:

initialize: function() {
    $('body').on('mouseover', '.tooltip', function() {
         ....
    }
}

不要忘记稍后解开它