【问题标题】:Dojo, basic tab applicationDojo,基本选项卡应用程序
【发布时间】:2015-02-26 09:34:55
【问题描述】:

我正在制作一个道场原型。我有几个表单小部件和选项卡在工作。但是,我该如何开始正确地开发应用程序,比如创建一个按钮来切换上一个/下一个选项卡?

http://jsfiddle.net/aGCFs/239/

我尝试包含注册表 - 但它没有按预期工作?

require(["dijit/registry"], function(registry){
   console.log("registry"); //registry.byId('second').set('disabled',!registry.byId('second').get('disabled'));
});

【问题讨论】:

  • 可能需要使用 selectChild 函数 - require(["dijit/registry", "dijit/layout/ContentPane"], function(registry, ContentPane){ var tabs = registry.byId( "myTabContainer"); var pane = new ContentPane({ title:"Remote Content", href:"remote.html" }); tabs.addChild(pane); tabs.selectChild(pane); });
  • 我将如何 a) 获取当前选项卡 - 并且 b) 选择下一个选项卡而不是按 id -- nextTab = function () { var tc = registry.byId("mainTabContainer"); console.log("下一个标签", tc); var subTab = dijit.byId(1); //要显示的选项卡 ID tc.selectChild(subTab); //显示选中的Tab };
  • jsfiddle.net/aGCFs/245 - 如何在不放置 id 的情况下选择下一个选项卡

标签: javascript dojo


【解决方案1】:

您可以使用 tc.getIndexOfChild() 和 tc.selectedChildWidget 以及 tc.getChildren() 来避免使用 id。 像这样:

nextTab = function () {
    var tc = registry.byId("mainTabContainer");
    console.log("next tab", tc);
    var currIndex = tc.getIndexOfChild(tc.selectedChildWidget);
    var tabs = tc.getChildren();
    if (currIndex < tabs.length - 1) {
        tc.selectChild(tabs[currIndex+1]);
    }

这是一个小提琴:http://jsfiddle.net/aGCFs/252/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多