我在 PrimeFaces Mobile 中遇到了 DataTable 和事件 Taphold 的问题。
问题:
- 如果我在数据表中使用事件 taphold,则在可以选择行之前发生事件。
期望的行为:
- 单击或手指触摸选择行(视觉上也通过行的不同背景颜色)。如果我按下足够长的时间,则会发生事件点击。
第一个想法,解决问题
- 我认为,问题在于,对于行选择, .mouseup()-event 负责,而不是 mousedown()-event 例如。因此,我必须在点击事件发生之前更改事件以选择行。但我不知道怎么做。
当前源代码:
<p:dataTable id="music_songs" var="music" value="#{musicPlayerBean.musicSongs}" selectionMode="single"
selection="#{musicPlayerBean.selectedMusicSong}" rowKey="#{music.id}" style="background: white;"
paginator="true" rows="25" tableStyleClass="ui-table-columntoggle" emptyMessage="keine Musik-Songs vorhanden">
<p:ajax event="taphold" oncomplete="alert('Hallo');"/>
<p:column headerText="Interpret" priority="1" sortBy="#{music.interpret}">
<h:outputText value="#{music.interpret}"/>
</p:column>
<p:column headerText="Titel" priority="1" sortBy="#{music.title}">
<h:outputText value="#{music.title}" />
</p:column>
<p:column headerText="Dauer" priority="2" sortBy="#{music.duration}">
<h:outputText value="#{music.durationAsString}"/>
</p:column>
<p:column headerText="Album" priority="2" sortBy="#{music.album}">
<h:outputText value="#{music.album}"/>
</p:column>
</p:dataTable>
版本:
- JSF 2.2
- Java 1.7
- 玻璃鱼 4
- PrimeFaces 5.2