我手上有一个非常简单的JSF形式:
<h:inputText id="number" value="#{bean.value}"
styleClass="integer" onkeyup="update()" />
我有一个jQuery选择器,如下所示:
jQuery(document)
.ready(
jQuery(".integer")
.keydown(
function(event) {
//do your stuf
});
现在,这个函数很好地被触发,直到我更新围绕此输入的容器。这是一个ui:顺便说一句。 update()方法仅刷新标签。更新后,在重新加载页面之前,函数永远不会被触发。这个jquery包含在head部分的一个文件中,但是在更新后仍然存在,但是没有触发函数?如何在更新后再次使用?
答案 0 :(得分:1)
正如其他人已经回答:当您更新容器时,事件处理程序不再连接,您需要重新附加它。
然而,另一个选择是使用jquery的on()方法。
所以使用这样的东西(虽然未经测试):
jQuery(document)
.ready(
$(document).on("keydown", '.integer', function (event) {
//do your stuf
}));
答案 1 :(得分:0)
更新后这不起作用,因为元素不再是绑定事件,所以你应该创建一个Javascript函数来解决这个问题:
<script type="text/javascript">
function test(){
jQuery(".integer")
.keydown(
function(event) {
//do your stuf
});
};
jQuery(document)
.ready(test();
);
</script>
组件更新目标组件应调用此test()
函数,如:
<p:commandButton oncomplete="test();" update=":COMPONENT_ID_HERE" ..../>