ExtJS:显示/隐藏事件不会级联下来?

时间:2011-03-18 18:54:45

标签: extjs

在ExtJS 3.2.x中是否存在已知限制(或错误?),其中show / hide等事件总是无法在面板层次结构中级联?

我有一个嵌套在其他面板层次结构中的面板。此面板的“show”事件仅在第一次显示时触发。但是,“root”面板中的“show”事件每次都会触发。

This forum post似乎表明事件不是在3.x中级联的。有人可以确认或提供更多信息吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

显示/隐藏事件确实没有级联。原因是show / hide实际上只是一个dom操作,与组件层次结构无关。

如果组件包含子组件,则它们是包含组件的dom后代,因此如果隐藏包含组件dom节点,也会隐藏它们。但这只是组件的dom层次结构的副作用,而不是组件层次结构的副作用。

答案 1 :(得分:1)

您可以使用cascade方法级联,如果您使用的组件支持它(Ext.layout.Panel s)。例如,如果您有一个面板,包含在一个面板中,并且您希望在隐藏父级时隐藏子面板,则可以尝试这样做:

validXTypes = ['panel'] //include any other valid types

parentPanel.cascade(function () {
    //if this component can be hidden...
    if (validXTypes.indexOf(this.xtype) != -1) {
        //...then hide it!
        this.hide();
    }
});