javascript - 我们如何在 cfLayout Accordion 中设置 onExpand 事件

标签 javascript extjs coldfusion

我们正在使用 CFLayout 在我们的 Web 应用程序中创建选项卡结构。创建该布局后,我们调用此函数:

mytabs = ColdFusion.Layout.getTabLayout("#attributes.cflayoutName#");
mytabs.on('tabchange',
    function(tablayout,tab) {           
        var tabtitle = tab.title;
        alert(tabtitle); // Actual code does various useful 'stuff' here.
    }
);

这段代码运行良好,每次用户单击选项卡时都会显示警报。

问题是我们现在正尝试使用 CFLayout 类型的“ Accordion ”做同样的事情,当用户切换他们正在查看的 Accordion Pane 时,我无法触发事件。我们已尝试保留上述内容,并将“tabchange”属性更改为“expand”、“beforeexpand”、“activate”和“collapse”。

对于此测试,我使用以下简单的 JS 函数来避免 onchange 事件中由 JS 引起的问题:

mytabs = ColdFusion.Layout.getAccordionLayout("#attributes.cflayoutName#");
mytabs.on('expand',
    function(tablayout,tab) {
        console.log('test');
    }
);

我们没有收到任何错误。根本没有任何内容记录到控制台。我已尝试将 console.log 替换为警报以排除该行的任何问题。

最佳答案

我发现 Ext 库文档对于找到此问题的解决方案非常有帮助:here .

Ext 库有一个 getComponent 方法,允许您引用您尝试向其添加展开事件的 Accordion 布局面板。完成后,您可以使用上面使用的“on”方法将展开事件分别分配给每个面板。

for (x=1; x<accordionLayoutArray.length; x++) {
        mytabs.getComponent(accordionPanelName).on('expand',
            function(tab) { ... });
}

关于javascript - 我们如何在 cfLayout Accordion 中设置 onExpand 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14754553/

相关文章:

javascript - 三星智能电视开发问题,Cookie 不持久

extjs - 如何在网格列中的渲染器函数中激活监听器

Coldfusion StructSetMetaData 不更新结构内数组中的项目

coldfusion - <cfmail> 输入和电子邮件之间的延迟以及电子邮件发送的时间

javascript - JS如何隐藏页面的所有分类

了解用户何时更改表单上的内容的 Javascript 事件

javascript - 需要在 Netsuite(SQL 语言)中的单词数量中包含 AND

javascript - Ext JS 6 - 尽管包含 ext-all.js 但未找到图表

javascript - 如何防止 ExtJs 菜单容器溢出主体?

javascript - 在( Bootstrap )模态主体内将数据 ID 传递给 ColdFusion 查询