是否可以在javascript中取消PrimeFaces菜单项onclick功能



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

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

menuItem 使用来自 miClass.menuitemAction 方法的 onclick 值制作得很好。 是否可以在javascript中覆盖PrimeFaces onclick函数? 就像仅在一页上的非常特定的设置中一样。单击菜单项时执行检查,如果检查返回 true,则执行通常的 onclick 操作,如果检查为 false,则用返回 false 覆盖 onclick。

感谢您的评论,我根据它们得到了答案。解决方案是获取菜单项句柄并重写 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;
}
}
}

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

最新更新