我有以下代码:
<rich:tabPanel switchType="client">
<rich:tab name="tab1" label="tab1" onclick="alert('Hello');">
...
</rich:tab>
<rich:tab name="tab2" label="tab2" onclick="alert('Hi');">
...
</rich:tab>
</rich:tabPanel>
此代码将生成一个包含2个标题页的面板,如下所示:
+------+ +------+
| tab1 | | tab2 |
+ +-+------+--------------------------+
| |
| Content of my Tab goes here... |
| |
+------------------------------------------+
关于使用的代码,如果点击Hi
标题,我希望看到tab2
的JavaScript提醒。
然而,没有显示任何内容,我只是切换到第二个标签。
事实上,如果我点击标签的内容,就会显示提醒信息。
我对这种行为感到有点困惑。
问题#1 这种行为是否正常?换句话说,onclick
是指内容上的点击事件,而标题页上的不是。
事实上,如果我查看此post及其相关的defect,它似乎不正确......
问题#2 如果此行为正常,如何为每个标签设置不同的onclick
行为?实际上,如果我在onclick
而不是<rich:tabPanel>
组件上设置<rich:tab>
,则始终会执行onclick
javascript函数。
我正在使用Richfaces 3.3.2.GA,JSF 1.2 + Facelets,Java 1.6
答案 0 :(得分:2)
在浏览了Richfaces论坛,特别是这个bug以及该组件的代码之后,我发现有一个onlabelclick
属性可以完成我想做的事情。
所以第一个问题的答案是是,第二个问题的工作代码是:
<rich:tabPanel switchType="client">
<rich:tab name="tab1" label="tab1" onlabelclick="alert('Hello');">
...
</rich:tab>
<rich:tab name="tab2" label="tab2" onlabelclick="alert('Hi');">
...
</rich:tab>
</rich:tabPanel>
我不知道这个属性,因为Richfaces的site和developer guide没有说明它们,我的Eclipse IDE + JBoss Tools插件没有将它们包含在自动完成中机构。