【问题标题】:Question regarding the onclick attribute of <rich:tab>关于 <rich:tab> 的 onclick 属性的问题
【发布时间】:2010-11-17 14:07:34
【问题描述】:

我有以下代码:

<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...        |
|                                          |
+------------------------------------------+

关于所使用的代码,如果我单击 tab2 标头,我希望看到一个 JavaScript 警报说 Hi

但是,什么都没有显示,我只是切换到第二个标签。

其实,如果我点击标签的内容,就会显示警告信息。

我对这种行为有点困惑。

问题 #1 这种行为正常吗?换句话说,onclick 指的是内容上的点击事件,而 not 是标签页头上的事件。

确实,如果我查看这个post 和这个相关的defect,它似乎并不正确......

问题#2如果这种行为是正常的,如何为每个标签设置不同的onclick 行为?实际上,如果我在&lt;rich:tabPanel&gt; 上设置onclick 而不是&lt;rich:tab&gt; 组件,onclick javascript 函数将始终被执行。

我正在使用 Richfaces 3.3.2.GA、JSF 1.2 + Facelets、Java 1.6

【问题讨论】:

    标签: jsf richfaces


    【解决方案1】:

    在浏览了 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 的 sitedeveloper guide 没有告诉任何关于它们的信息,而且我的 Eclipse IDE + JBoss Tools 插件没有将它们包含在自动完成机制中。

    【讨论】:

    • 你知道为什么我不能在onlabel点击事件中使用“return false”来结束导航到标签页吗?
    • 在 Richfaces 4 中改为 onheaderclick
    猜你喜欢
    • 1970-01-01
    • 2011-09-28
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    相关资源
    最近更新 更多