由于primefaces热键的限制,我把下面的jquery脚本(script source)设置为当焦点在输入字段时热键工作。但是当页面第一次加载时它只能工作一次。如果在任何AJAX调用后尝试它不起作用。我有一个主模板,其中包含head和body标签;所有xhtml文件都包含在其中。下面的代码是关于需要热键的特定XHTML。在输入字段外单击时,热键可以完美地工作。有没有办法让它在输入字段中工作?
<ui:define name="pageJS">
<script type="text/javascript">
/* <![CDATA[ */
$(function() {$(':input').bind('keydown', 'ctrl+shift+v', function(){saveWidgetVar.jq.click();;return false;});});
/* ]]> */
</script>
</ui:define>
下一行包含在一个小组中。
<p:hotkey id="saveKey" bind="ctrl+shift+v" handler="saveWidgetVar.jq.click();" />
是否存在必须放置JQuery脚本的某个位置?
另一方面,我在另一篇博客中注意到,通过更改热键选项可以实现这一点。以下是建议值:
$.hotkeys.options.filterInputAcceptingElements = false;
$.hotkeys.options.filterTextInputs = false;
我不确定在哪里添加这个?
答案 0 :(得分:0)
我通过删除输入验证来定制primefaces hotkey.js;把它添加到我当地的资源中;然后通过在主模板中包含自定义文件来覆盖原始文件。还在for循环中使用了以下unbind代码以避免多重绑定。
$(document).off('keydown');
一切都很棒!!!