我很难让富:热键按富脸中的预期工作(版本:4.3.2)
主要问题
:只有当弹出面板显示时,我才能使热键工作。
在网站上的某个点上,我展示了一个弹出面板,其中包含继续进行的选择。
例如(组成):
选择:
1-转到下一页
2-转到向导的开头
3-取消向导并转到主页
如果按“1”,我希望选择第一个选项,在“2”上选择第二个选项。
我的代码到目前为止:
<h:form prependId="false" id="contentForm">
...
<rich:popupPanel id="navPopup" modal="true" autosized="true" resizeable="false" styleClass="popup-panel"
zindex="202" domElementAttachment="parent">
...
<rich:panel id="navOptions">
<!-- this div is used to check visibility of the navpopuppanel, for the key event -->
<script type="text/javascript">
/* <![CDATA[ */
function focusPopupChoice(getal) {
alert(getal);
}
/*]]> */
</script>
<a4j:repeat value="#{cc.attrs.managedBean.navigationMenuModel.menuOptions}" var="option" id="repeat" rowKeyVar="index">
<a4j:commandButton action="#{controllerBean.action.menuSelect(option.viewId)}" value="#{index +1} - #{option.label}"
render="@form" type="button" styleClass="btn-keuze-ok" id="popupChoice"
oncomplete="#{rich:component('navPopup')}.hide(); return false;" onkeypress="return submitByEnter(event)"
immediate="true"/>
<rich:hotKey enabledInInput="true" key="#{index +1}" onkeyup="focusPopupChoice(#{index +1});" preventDefault="true"/>
</a4j:repeat>
</rich:panel>
</rich:popupPanel>
...
</h:form>
这很有效。我在按1-3时收到警报。
问题:当弹出窗口不可见时,我也会收到警报。
所以我找到了Selecter选项。所以我添加了选择
<rich:hotKey enabledInInput="true" selector="#navPopup" key="#{index +1}" onkeyup="focusPopupChoice(#{index +1});" preventDefault="true"/>
现在它不再起作用了。热键现在起作用的唯一时刻是选择按钮已聚焦/选中时。当我单击页面上的任何位置(除了按钮)时,热键不再起作用。
我还试着
selector=“#contentForm”
,效果相同。
主要问题
:
只有在弹出面板显示时,我才能使热键工作。
子问题
:
主页也有热键,当弹出面板显示时,我想禁用热键。根据我的说法,这也可以用选择器,如果我错了,请纠正我。
提前感谢!