2009-07-05 4 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> 

Теперь я также попытался указать селектор вроде this selector = "# form: tab_lbl", но все же я никогда не могу добавить класс к этому элементу td. Есть ли причина для этого? Если я создаю новую таблицу без использования richfaces tabPanel, я могу легко использовать этот способ добавления классов с теми же селекторами, но просто не работает в этом примере.

Любые идеи?

Редактировать: Я хотел бы добавить, что если я использую firebug и добавляю класс вручную, я получаю результат, который я ищу.

ответ

2

rich:jQuery найдет для вас правильный идентификатор, если он может соответствовать его компоненту. Из Richfaces Developer Guide:

При определении селектор, RichFaces анализирует его содержимое и пытается заменить определен в ИО селекторного с компонентом идентификатором, если он найден.

Также обратите внимание на пример, приведенный когда вы хотите, чтобы указать точный ID:

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

(обратите внимание на двойную обратную косую черту, чтобы избежать толстой кишки)

Вы могли бы использовать #tab1 как селектор и богатый: jQuery заменит его на правильный ID. Однако эта вкладка найдет вкладку, и вы хотите использовать метку табуляции.

Таким образом, возможно, более надежный способ найти ярлык (надежный, если вы перемещаете свою страницу вокруг или даете форму id, то она все равно будет работать) - это найти вкладку, а затем дочерний элемент этой вкладки, это метка. Таким образом, возможный селектор будет:

#tab1/../td.rich-tab-header 

 Смежные вопросы

  • Нет связанных вопросов^_^