2009-07-05 49 views
0

我有一個豐富的:tabPanel其中包含多個選項卡。我想使用jquery在每個選項卡上記錄更改,以便在選項卡內進行更改時更改選項卡的背景圖像。使用RichFaces 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> 

現在我也試圖指定選擇器像這樣selector =「#form:tab_lbl」,但我仍然無法將類添加到此td元素。這有什麼理由嗎?如果我在不使用richfaces tabPanel的情況下創建一個新表,我可以很容易地使用這種添加具有相同選擇器的類的方式,但它在此示例中不起作用。

任何想法?

編輯:我想補充一點,如果我使用螢火蟲和手動添加類,我得到的結果林尋找。

回答

2

rich:jQuery會找到適合您的ID,如果它可以將它匹配到組件。從Richfaces Developer Guide

當你定義一個選擇,RichFaces的 審查其內容,並試圖 與組件id替換選擇ID 的定義,如果它的發現。

也期待在給定當你想指定確切 ID的例子:

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

(注意雙反斜槓逃逸冒號​​)

你可以使用#tab1作爲選擇器和豐富的:jQuery會用正確的ID替換它。但是,這會找到選項卡,並且需要選項卡標籤。

因此可能更強大的方式來找到標籤(健壯的,如果你移動你的網頁或給表單一個ID然後它仍然會工作)將是找到選項卡,然後是該選項卡的子是標籤。所以一個可能的選擇器是:

#tab1/../td.rich-tab-header 
相關問題