给Dojo TabContainer一个ID

时间:2012-04-13 13:36:46

标签: javascript dojo

我的页面中有以下代码,用于创建新的Dojo / Dijit TabContainer。

<div dojoType="dijit.form.ComboButton" iconClass="dijitIconEdit">
    <span>
    Blank
    </span>
    <div dojoType="dijit.Menu">
    <div dojoType="dijit.MenuItem" iconClass="dijitIconEdit">
        Letter to Client
        <script type="dojo/method" event="onClick">
            newLetterToClientPane = dojox.layout.ContentPane({ title:'New Letter to Client', href:'some_url', closable:true })
            dijit.byId('mainTabs').addChild(newLetterToClientPane)
        </script>
    </div>
    <div dojoType="dijit.MenuItem" iconClass="dijitIconEdit">
        Letter to Company
        <script type="dojo/method" event="onClick">
            newLetterToCompanyPane = dojox.layout.ContentPane({ title:'New Letter to Company', href:'some_url', closable:true })
            dijit.byId('mainTabs').addChild(newLetterToCompanyPane)
        </script>
    </div>
    </div>
</div>

一切正常。我只是想知道如何给新的TabContainer一个ID,因为我需要在脚本中重新填充,但是我不能用out和ID来完成这个。我只是问,因为dojox.layout.ContentPanedijit.layout.ContentPane上的Dojo页面没有提到它。

3 个答案:

答案 0 :(得分:2)

以下内容应该有效:

newLetterToClientPane = dojox.layout.ContentPane({ id: "cp1", title:'New Letter to Client', href:'some_url', closable:true });

然后您可以通过

访问该小部件
dijit.byId("cp1")

例如

dijit.byId("cp1").attr ("title", "new title");

请注意,jsid将使用您指定的id创建一个全局JS变量 - 因此,如果您不想添加到全局内存,请务必小心 它提供了方便,但你不需要做dijit.byId来访问它 你可以这样做:

cp1.attr("title", "new title");

如果你使用jsId作为cp1

请注意dojo.byId和dijit.byId之间的区别: http://dojotoolkit.org/reference-guide/1.7/dijit/info.html

由于所有小部件的ID行为相同,我猜他们在上面链接中提供的基础dijit文档中添加了详细信息

答案 1 :(得分:1)

使用jsId作为

<div jsId='myfirstTab' dojoType="dijit.form.ComboButton" iconClass="dijitIconEdit">

<强>更新

为自己分配新ID

newLetterToClientPane = dojox.layout.ContentPane({ title:'New Letter to Client', href:'some_url', closable:true, jsId :'myfirstTab' })

答案 2 :(得分:0)

您也可以将id作为第二个参数传递给构造函数

非常像标准方式。

newLetterToClientPane = dojox.layout.ContentPane({ title:'New Letter to Client', href:'some_url', closable:true }, "cpId")