在richtable中使用jquery显示/隐藏Div

时间:2012-11-29 22:09:32

标签: jquery jsf xhtml richfaces

我有一个Rich Faces表,其中包含div中的数据。当我将鼠标悬停在richtable行上的特定行以显示与该记录关联的额外数据并在使用jquery的mouseout时隐藏div时,我想显示另一个div。我能够使用jquery显示/隐藏div。但问题是它显示/隐藏与每行相关联的每个div标签,而不是显示/隐藏特定行的div。我如何确保只有我鼠标悬停的行显示与之关联的div标签?

以下是代码段:

<s:div style="float:left; ">
  <rich:dataTable id="pendingOptyTbl" value="#{searchResultList}"
    var="item" style="border: none; float: left;width:100%;">  
      <rich:column style="border: none;">
          <s:div style="position:relative;height: 35px;">
            <s:div style="float:left; width: 700px; " >
               <a4j:outputPanel style="width: 700px;" onmouseout="jQuery('accountDetails').hide();"   onmouseover="jQuery('.accountDetails').show();">
                    <s:div>
                           <h:outputText value="#{searchController.getCapitalizeName(item.label)} : " >
                    </s:div>
               </a4j:outputPanel>
            </s:div>
        <s:div  style="float:left;top:-10px;right:80px; width:360px;position:absolute;" styleClass="searchDetailsClass">
                <a4j:outputPanel id="searchDetails" ajaxRendered="true" styleClass="accountDetails">

                                      

2 个答案:

答案 0 :(得分:0)

也许不是最好的解决方案,但你可以尝试使用行索引的jQuery id选择器:

<h:form id="form">
    <rich:dataTable id="table" rowKeyVar="idx" ...>
        <rich:column>
        ...
            <a4j:outputPanel onmouseover="jQuery('#form\\:table\\:#{idx}\\:searchDetails').show();"
                onmouseout="jQuery('#form\\:table\\:#{idx}\\:searchDetails').hide();">

您可以使用Firebug找出<a4j:outputPanel id="searchDetails">的结果ID。

答案 1 :(得分:0)

所以我使用与弗拉基米尔的答案类似的方式解决了这个问题,但我没有使用Style,而是使用StyleClass。我添加了styleClass =“detail - #{idx}”并使用onmouseover =“jQuery('。detail - #{idx}')进行搜索.show();”。这将使用div的样式类搜索元素。每个div都有不同的样式,因为有一个与之关联的行索引。我希望这将有助于将来的某些人。仅供参考:弗拉基米尔所描述的使用Id并不适合我。