Нажатие на MenuItem без нажатия на текст - PullRequest
3 голосов
/ 03 декабря 2010

У меня есть Меню, и я хочу нажать на меню, но не на текст, если вы, ребята, знаете, что я имею в виду. Элемент 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 ]

2 голосов
/ 11 января 2011

Это не идеально, но может работать.Вы можете использовать что-то вроде этого:

 <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...

Если вам нужен идентификатор разговора, вы можете использовать: <s:conversationId>

Надеюсь, это поможет ...

2 голосов
/ 16 января 2011

Стиль элемента меню, используя:

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;.

0 голосов
/ 03 декабря 2010

Либо присвойте текстовому селектору css такую ​​же высоту и ширину, что и его родительскому элементу.Или задайте кнопке поведение, которое вы даете тексту.

...