从Primefaces上下文菜单覆盖显示方法

时间:2019-08-09 07:33:06

标签: jsf primefaces contextmenu

在示例here之后,我尝试覆盖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>

不幸的是我得到了错误:

  

未捕获的TypeError:无法读取未定义的属性'pageX'


我正在使用PF 7.0

1 个答案:

答案 0 :(得分:0)

可以覆盖,问题是由以下几行引起的:

  <p:ajax event="contextMenu" listener="#{myTreeBean.onRightClickSelectListener}" oncomplete="PF('serverTreeMenuVar').show()"/>

尤其是

oncomplete="PF('serverTreeMenuVar').show()"