我有丰富的:一个tabpanel在这几个选项卡。我想使用jQuery来记录每个选项卡上的变化,这样,当一个变化是一个选项卡内作出更改标签的背景图像。

它看起来像这样:

<h:form id="form">
    <rich:jQuery selector="#tab1_lbl" query="addClass('testClass')" timing="onload"/>
        <rich:tabPanel switchType="client" id="tabContainer">
            <rich:tab id="tab1" label="tab1" title="tab1" >
                 tab1
            </rich:tab>

            <rich:tab id="tab2" label="tab2">
                 tab2
            </rich:tab>
       </rich:tabPanel>
</h:form>

我之所以有选择说#tab_lbl是因为从这个生成的HTML看起来像这样:

<td id="form:tab1_lbl" class="dr-tbpnl-tb rich-tab-header dr-tbpnl-tb-act rich-tab-active " title="tab1" onmouseout="RichFaces.outTab(this);" onmouseover="RichFaces.overTab(this);">
tab1
</td>

现在我也试图说明这样选择=选择“#形式:tab_lbl”,但我仍然不能得到的类添加到这个TD元素。有没有道理呢?如果我做一个新表,而无需使用RichFaces的一个tabpanel我可以轻松地使用添加类具有相同选择的这种方式,但它只是不在这个例子中的工作。

任何想法?

编辑:我想补充一点,如果我使用Firebug并添加类手我得到的结果进出口寻找

有帮助吗?

解决方案

rich:jQuery将找到你的适当ID,如果它可以匹配到一个组件。从 RichFaces开发指南

  

当你定义一个选择器,RichFaces的   检查的内容,并尝试   替换选择器ID所定义的   与组件ID,如果它找到。

另外,也要看看对于给定的,当你想指定的例子中的确切的ID:

<rich:jQuery selector="#form\\:menu img" query="..." />

(注意双反斜杠逃脱结肠)

您可以使用#tab1作为选择和丰富:jQuery的会用正确的ID替换。然而,这会发现选项卡,你想要的选项卡标签。

所以可能是一个更强大的方式,找到标签(在强大的,如果你走动您的网页或给予形式的ID,然后在它仍然可以工作)会找到选项卡,然后该标签的孩子是标签。因此,一个可能的选择将是:

#tab1/../td.rich-tab-header
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top