让子视图/子视图知道它们何时已经在DOM中的最佳方法是什么?
考虑我们有以下视图层次结构:
MainView
SubView
ChildView
这里举例说明MainView
已经在DOM中了。然后,render
进程MainView
的一部分创建SubView
,然后创建ChildView
。
结果ChildView
在MainView
完成'渲染之前'不会出现在DOM中。我需要知道(通过事件或处理程序)何时插入和显示它。
最简单的答案是MainView
在完成渲染时触发某些事件。如果这是我需要它的唯一情况 - 那就没问题了。但是有很多地方,总的来说突然间的次要观点要求他们的父母做什么,可能不好。
的更新 的: 在什么情况下这是必需的?当我们使用小部件时,期望元素在DOM中(获得高度等)。在示例中:Accordion widget,jqGrid。因此,当他们的容器已经在DOM中时,启动它们的正确时间。
答案 0 :(得分:-1)
我不确定你的用例是什么,但我假设它在Childview中找到一个DOM元素并进行操作。在这种情况下,它是否在DOM中无关紧要。
我通常会抓住对元素的引用 - $el
然后找到子元素
$target = $el.find('.target')
这样做的另一个好处是只允许我在ChildView中抓取类或ID,以确保正确管理视图。