我在表单中有一个Treenode
<h:form id="form">
<p:panel styleClass="gridTree" id="gridTree" style="overflow:auto">
<p:tree value="#{permissionsBean.root}" var="node" dynamic="true" cache="true" id="permissionTree" >
<p:treeNode>
<h:outputText value="#{node}"/>
</p:treeNode>
</p:tree>
</p:panel>
要修正树的高度并为高度添加滚动条,我将更改脚本中的高度
$(document).ready(function(){
var windowHeight = $(window).height();
$('.gridTree').css('height',windowHeight-220+'px');
$(window).resize(function () {
windowHeight = $(window).height();
$('.gridTree').css('height',windowHeight-220+'px');
});
});
现在我正在从选择的一个菜单update="@form"
的更改事件更新表单。这将删除 document.ready 功能中设置的高度。那么如何调用一个javascript函数来设置组件更新时树的高度?
答案 0 :(得分:1)
我不知道它是否正确但是如果我在JSF中使用ui组件的'onchange'属性来调用我的resize函数。我尝试了jQuery更改功能,但它没有用。
<p:selectOneMenu id="categoryName" value="#{permissionsBean.permissions.category}" >
<f:selectItem itemLabel="Select" itemValue="0" />
<f:selectItems value="#{permissionsBean.permission}" var="perm" itemLabel="#{perm.category}" itemValue="#{perm.category}"/>
<p:ajax event="change" update="msgs picklist @form" listener="#{permissionsBean.handleCategoryChange}" oncomplete="resizeComp();"/>
</p:selectOneMenu>
答案 1 :(得分:0)
尝试使用jquery表单事件。
$("select,input,textarea").change(function()
{
//call your resize function
}