我的页面中有以下代码,用于创建新的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.ContentPane和dijit.layout.ContentPane上的Dojo页面没有提到它。
答案 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")