首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Primefaces菜单onhide事件

Primefaces菜单onhide事件
EN

Stack Overflow用户
提问于 2016-06-18 00:08:28
回答 1查看 624关注 0票数 0

我有一个带有按钮单击事件触发器的菜单。在客户端,每当菜单可见时,我想添加一些样式来触发按钮,当菜单被隐藏时,从按钮中删除样式。

为了添加样式,我可以在按钮上添加一个监听器,然后添加样式。但是,当菜单被隐藏时,我如何向菜单添加侦听器,以便可以从按钮中删除样式?

是否有方法可以将侦听器添加到菜单组件隐藏事件

下面是菜单和按钮的代码片段,供参考:

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2016-06-22 10:51:57

我可以通过重写menu widgetVar实例上的hide函数来实现。不知怎么的,在document.ready事件中widgetVar没有初始化,因此我不得不延迟初始化菜单-

为按钮添加了onclick监听器

代码语言:javascript
复制
<p:link id="MenuLink" href="javascript:void(0)" onclick="showUserMenu();"/>

下面是onclick监听器的代码:

代码语言:javascript
复制
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');
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37885982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档