我有一个带有左侧菜单的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覆盖。
答案 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;
}
}
}
该脚本仅在特定页面上运行。