我有一个p:dataTable,我想创建并实现当我将鼠标悬停在一行上时,出现一个允许我删除该行的delete
图像。我使用PrimeFaces.escapeClientId
将jsf Id
转换为jQuery
可以理解的id
。这是我到目前为止所得到的
<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返回无错误。请帮帮忙
发布于 2010-12-31 05:08:25
直接的问题是你没有用引号把"deleteButton“括起来--所以javascript认为它是一个变量名,而不是一个字符串。
您可以很容易地跳过整个id业务,只显示,例如“当前元素内的所有div”,通过将以下内容作为jQuery上下文传递:
<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上工作。
发布于 2016-02-25 13:29:38
使用onmouseenter
和onmouseleave
代替onmouseover
和onmouseout
,避免因事件冒泡而导致的闪烁
例如:
<div onmouseenter="jQuery('span', this).fadeIn()"
onmouseleave="jQuery('span', this).fadeOut()">
...
</div>
https://stackoverflow.com/questions/4564310
复制相似问题