2011-02-28 36 views
1

我使用StackContainer作爲菜單,但我遇到了在stackcontainer中的「選項卡」上附加自定義onclick事件的問題。Dojo&StackController/StackContainer

我的應用程序,基本上奠定了這樣的:

header 
subheader 
content 

頁眉有stackcontroller標籤和內容明顯顯示的內容。但是,當我單擊標題中的任何標籤元素時,我想運行一個相應地更改子標題的函數。現在我該如何做到這一點?內容切換效果很好,所以沒有問題。

我使用ContentPanes作爲選項卡元素,我試圖把onclick直接放在它們上面,我試着用dojo.connect - 沒有運氣。我有經驗與jQuery &普通的JS,但我是道場新手,所以如果我失去了一些真正明顯的東西,請原諒:)

回答

2

最簡單的方法是使用內置的pub/sub機制小部件。

在孩子選擇StackContainer將公佈:

dojo.publish(this.id+"-selectChild", [page]); 

,其中被選擇的頁面的子部件。

所以,你應該使用:

dojo.subscribe(myStackId, function(/* dijit */ selectedChild) { 
    // use the selectedChild to do what you want 
}); 

順便說一句,dijit的提供是套管駱駝標準化活動。所以你可以連接到dijit的onclick事件,但要做到這一點,你應該使用'onClick'。但是,如果您使用這種方法,您不一定會保證選擇了孩子。

請參閱http://dojotoolkit.org/reference-guide/dojo/publish.html

+0

這是有效的。我不知道多少Dojo使用pubsub技術,但它確實是將事情聯繫在一起的非常聰明的方法。 – jimm 2011-02-28 11:30:31

+0

是的,唯一的問題是它沒有很好地記錄在API IMO – mrtom 2011-02-28 13:28:54