我有一个带有按钮单击事件触发器的菜单。在客户端,每当菜单可见时,我想添加一些样式来触发按钮,当菜单被隐藏时,从按钮中删除样式。
为了添加样式,我可以在按钮上添加一个监听器,然后添加样式。但是,当菜单被隐藏时,我如何向菜单添加侦听器,以便可以从按钮中删除样式?
是否有方法可以将侦听器添加到菜单组件隐藏事件
下面是菜单和按钮的代码片段,供参考:
<div class="round-button-circle">
<p:link id="MenuLink" href="javascript:void(0)"/>
</div>
<p:menu overlay="true" widgetVar="menuWidgetVar" trigger="MenuLink" styleClass="PageHeaderMenu ui-menu-child" >
<p:menuitem ...
</p:menu>发布于 2016-06-22 10:51:57
我可以通过重写menu widgetVar实例上的hide函数来实现。不知怎么的,在document.ready事件中widgetVar没有初始化,因此我不得不延迟初始化菜单-
为按钮添加了onclick监听器
<p:link id="MenuLink" href="javascript:void(0)" onclick="showUserMenu();"/>下面是onclick监听器的代码:
var showUserMenu = function() {
var menuWidget = PF('menuWidgetVar');
if(menuWidget === undefined) {
return;
}
//lazy initialzed because the PF widgetVar is not visible in document.ready event
if(!menuSettings.initialized) {
//proxy the method for hide to update styles
var _hide = menuWidget.hide;
menuWidget.hide = function() {
_hide.apply(menuWidget);
//on hide remove style classes
$("#MenuLink").removeClass('button-selected');
};
menuSettings.initialized = true;
}
//on click add style classes
$("#MenuLink").addClass('button-selected');
};https://stackoverflow.com/questions/37885982
复制相似问题