[英]jQuery event is executed once only (Primefaces 3.2, JSF 2.2)
[英]jQuery manipulation only once (JSF, Primefaces)
我有一個要修改字體大小的數據表。 用戶可以使用selectOneMenue組件設置字體大小。
現在,如果我使用jQuery更新它,這只會在第一次發生。 如果我想通過selectOneMenue更改字體大小,則將字體大小設置為默認值,如果進行刷新(F5),則成功更改字體大小。 但是我不希望這種行為。
因此,我在腳本部分添加了reload()函數。 如果執行此操作,如果我想重新加載.....,我總是會收到此Firefox消息,然后它將以默認大小呈現表格,並在呈現正確的字體大小之后不久。 因此最終產品還可以,但是我不希望出現此必須提交的firefox消息,並且我還想關閉使用默認字體大小的表格的預渲染。
現在我有了這段代碼
<script>
jQuery(document)
.ready(
function() {
jQuery('#dtSummary')
.css('cssText',
'font-size:#{summaryBean.selectedFont}px !important');
});
function changeFont() {
document.getElementById("dtSummary").style.fontSize = "#{summaryBean.selectedFont}px !important;}";
window.location.reload(true);
}
</script>
<h:form id="form" prependId="false">
<h:panelGroup>
<h:panelGrid columns="3" styleClass="rainstar-form-inline"
columnClasses="rainstar-form-column-left rainstar-form-column-right">
<p:selectOneMenu id="targ" effect="fade"
styleClass="rainstar-input-small2"
value="#{summaryBean.selectedFont}"
valueChangeListener="#{summaryBean.selectionFont_change}"
onchange="changeFont()">
<f:selectItems value="#{summaryBean.fontCollection}" />
<p:ajax update="dtSummary" />
</p:selectOneMenu>
</h:panelGrid>
<p:commandButton value="#{msg.button_print}" icon="ui-icon-print"
styleClass="rainstar-button-right"
action="#{summaryBean.generatePdf()}" ajax="false" />
<p:dataTable id="dtSummary" styleClass="rainstar-form-margin-top"
value="#{summaryBean.eintragList}"
selection="#{summaryBean.selectedEintrag}" selectionMode="multiple"
var="eintrag" rowKey="#{eintrag.it1}">
<p:column id="header" styleClass="ui-state-default">
<div class="ui-dt-c">#{eintrag.it1}</div>
</p:column>
<p:column styleClass="rainstar-table-item"
headerText="#{tableBundleBean.summary_table_nozzles} [mm]">
<h:outputText value="#{eintrag.it2}" />
</p:column>
</p:dataTable>
</h:panelGroup>
</h:form>
您實際上不需要在這里使用jquery。 嘗試:
<p:column styleClass="rainstar-table-item"
headerText="#{tableBundleBean.summary_table_nozzles} [mm]">
<h:outputText value="#{eintrag.it2}" style="font-size:#{summaryBean.selectedFont}px !important"/>
</p:column>
例如,出於性能原因,如果您想避免服務器往返和渲染,則使用Jquery會很有意義。 在這種情況下,selectMenu小部件不應導致頁面刷新。
我不太確定將為您的選擇框生成哪個ID,但是假設它將獲得ID“ targ”,則應執行以下操作:
$(document).ready(
changeFontSize
)
function changeFontSize() {
$('#dtSummary').css('fontSize', $('.targ').val() + 'px !important');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.