从 Primefaces 上下文菜单覆盖显示方法
Override show method from a Primefaces context menu
按照示例,我尝试覆盖 Primefaces 上下文菜单的 show() 方法。
这是我的代码:
<p:tree value="#{myTreeBean.mainTreeRoot}" id="myTree>
<p:ajax event="contextMenu" listener="#{myTreeBean.onRightClickSelectListener}" oncomplete="PF('serverTreeMenuVar').show()"/>
[...]
</p:tree>
<p:contextMenu widgetVar="myTreeMenuVar" for="myTree" id="myTreeMenu" model="#{myBean.contextMenuModel}"></p:contextMenu>
<script>
$( function() {
PF('myTreeMenuVar').show = function(e) {
console.log('my function');
// call the generic implementation:
PrimeFaces.widget.ContextMenu.prototype.show.call(this,e);
}
});
</script>
不幸的是我得到了错误:
Uncaught TypeError: Cannot read property 'pageX' of undefined
我正在使用 PF 7.0
覆盖没问题,问题是由以下行引起的:
<p:ajax event="contextMenu" listener="#{myTreeBean.onRightClickSelectListener}" oncomplete="PF('serverTreeMenuVar').show()"/>
特别是来自
oncomplete="PF('serverTreeMenuVar').show()"
按照示例
这是我的代码:
<p:tree value="#{myTreeBean.mainTreeRoot}" id="myTree>
<p:ajax event="contextMenu" listener="#{myTreeBean.onRightClickSelectListener}" oncomplete="PF('serverTreeMenuVar').show()"/>
[...]
</p:tree>
<p:contextMenu widgetVar="myTreeMenuVar" for="myTree" id="myTreeMenu" model="#{myBean.contextMenuModel}"></p:contextMenu>
<script>
$( function() {
PF('myTreeMenuVar').show = function(e) {
console.log('my function');
// call the generic implementation:
PrimeFaces.widget.ContextMenu.prototype.show.call(this,e);
}
});
</script>
不幸的是我得到了错误:
Uncaught TypeError: Cannot read property 'pageX' of undefined
我正在使用 PF 7.0
覆盖没问题,问题是由以下行引起的:
<p:ajax event="contextMenu" listener="#{myTreeBean.onRightClickSelectListener}" oncomplete="PF('serverTreeMenuVar').show()"/>
特别是来自
oncomplete="PF('serverTreeMenuVar').show()"