2011-02-28 45 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