单击MenuItem而不单击文本

时间:2010-12-03 13:13:13

标签: jsf richfaces seam

我有一个菜单,我想点击菜单,但如果你们知道我的意思,请点击文字。 MenuItem有一个边框,或类似的东西,但当我点击它时,它不会重定向到我想要的页面,除非我点击文本。

是否可以单击整个“按钮”并重定向或执行需要执行的操作?

我的菜单是这样的:

<rich:dropDownMenu showDelay="250" hideDelay="0" submitMode="none">
        <f:facet name="label">Tools</f:facet>

        <rich:menuItem>
            <s:link view="/pages/tools/ppaParameters/PpaParametersEdit.xhtml" value="Parameters" id="PpaParametersId" includePageParams="false" propagation="none"/>
        </rich:menuItem>

        <rich:menuGroup value="Security">
            <rich:menuItem>
                <s:link view="/pages/tools/security/ppaModule/PpaModuleEdit.xhtml" value="Module" id="PpaModuleId" includePageParams="false" propagation="none" />
            </rich:menuItem>
        </rich:menuGroup>
</rich:dropDownMenu>

有一个例子。我需要点击文字才能解决问题。

alt text

3 个答案:

答案 0 :(得分:2)

这不完美但可以奏效。 你可以使用这样的东西:

 <rich:menuItem onclick="location.href='url'">
     <h:outputText value="Link 2" />
 </rich:menuItem>

这将允许您单击菜单项内的任何位置。

url - 您必须自己添加并添加s:link添加的所有请求参数。例如: http://server/app/page.seam?cid=XX&propogate=xx ...

如果您需要会话ID,可以使用:<s:conversationId>

希望这会有所帮助......

答案 1 :(得分:2)

使用以下方式设置菜单项的样式:

display:block;

例如,rich:menuItem使用h:link(而不是s:link,但应该适用相同的想法):

<rich:menuItem immediate="true">
    <h:link value="System" outcome="menu-01" id="menu-01" styleClass="menu-item-link" />
</rich:menuItem>

在CSS中,更改菜单项标签类(.rf-ddm-itm-lbl):

/* Allow clicking anywhere on a menu item, not just the text. */
.rf-ddm-itm-lbl {
    display: block;
}

/* Style the menu to taste. */    
a.menu-item-link {
    color: #333333 !important;
    text-decoration: none !important;
    display: block !important;
}

/* Remove space for icons. */
.rf-ddm-emptyIcon, .rf-ddm-emptyIcon {
    display: none;
}

请注意display: block;的两个实例。

答案 2 :(得分:0)

为文本css选择器提供与其父级相同的高度和宽度。或者给按钮提供您给出文本的行为。