1

私は ap:dataTable を持っていて、マウスを行の上に置くと、deleteその行を削除できるように画像が表示されるようにしたいと考えています。私はその理解PrimeFaces.escapeClientIdに変換するために使用しjsf Idます。ここに私がこれまでに得たものがありますidjQuery

<p:dataTable value=#{...} var="item">
   <p:column>
       <div onmouseover="jQuery(PrimeFaces.escapeClientId('deleteButton')).fadeIn()">
            <!-- Content of the row -->
            <p:commandButton id="deleteButton" image="delete" style="border: 0; display: none;" 
                              actionListener="#{bean.deleteRow(item)}" />
       </div>
   </p:column>
<p:dataTable>

残念ながら、うまくいきません。Firebug はエラーを返しません。助けてください

4

2 に答える 2

1

当面の問題は、「deleteButton」を引用符で囲んでいないことです。そのため、javascript は文字列リテラルではなく、変数名であると認識しました。

これをjQueryコンテキストとして渡すことで、idビジネス全体を簡単にスキップして、たとえば「現在の要素内のすべてのdiv」などを表示できます。

<p:column>
 <div onmouseover="jQuery('div', this).fadeIn()">
    to jest div
    <div style="color: wheat; background-color: green; display: none">
      <p:commandButton id="deleteButton" image="delete" style="border: 0" actionListener="#{bean.deleteRow(item)}" />
    </div>
 </div>
</p:column>

onmouseoverは p:column でも機能するはずです。

于 2010-12-30T21:08:24.613 に答える
0

onmouseenterandonmouseleaveの代わりにonmouseoverandを使用しonmouseoutて、イベントのバブリングによって引き起こされる点滅を回避します。

例えば

<div onmouseenter="jQuery('span', this).fadeIn()" 
     onmouseleave="jQuery('span', this).fadeOut()">
     ...
</div>
于 2016-02-25T05:29:37.553 に答える