[英]Give Dojo TabContainer an ID
我的頁面中包含以下代碼,用於創建新的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頁面沒有提及它。
以下應該工作:
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文檔中添加了詳細信息
使用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' })
您也可以通過將id
作為第二個參數傳遞給構造函數來執行此操作
很像標准方式。
newLetterToClientPane = dojox.layout.ContentPane({ title:'New Letter to Client', href:'some_url', closable:true }, "cpId")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.