是否可以取消javascript

时间:2018-08-23 13:47:49

标签: javascript java primefaces

我有一个带有左侧菜单的PrimeFaces网站。菜单有几个菜单项:

<p:menuitem 
value="#{msgs['text.menuitemMessage']}" 
action="#{miClass.menuitemAction}" 
styleClass="mnt-icon icon_24 #{miClass.getStyle('parameter')}" 
global="false" />

使用来自miClass.menuitemAction方法的onclick值可以很好地完成menuItem。 是否可以覆盖javascript中的PrimeFaces onclick函数? 就像在非常具体的设置中只有一页一样。单击menuItem时将执行检查,如果检查返回true,则执行通常的onclick操作;如果检查为false,则onclick被return false覆盖。

1 个答案:

答案 0 :(得分:0)

感谢您的评论,我从中得到了答案。解决方案是获取menuitem句柄并重写onclick函数:

for (var i = 0; i < menuitemsLength; i++) {
            var menuitemFunction = PF("widget_j_idt87_j_idt88").menuitemLinks[i].onclick;

            PF("widget_j_idt87_j_idt88").menuitemLinks[i].onclick = function () {
                globalFunctionForLeaving = $(this).attr('onclick');
                console.log(globalFunctionForLeaving);

                if ("#{miClass.somethingDone}") {
                    PF('popupWindow').show();
                    return false;
                } else {
                    menuitemFunction;
                }
            }
        }

该脚本仅在特定页面上运行。