我有一些jQuery
代码可以在每个$(document).ready()
事件上运行。
我还有一些<f:ajax>
标签可以重新呈现页面的某些部分。
我注意到当我重新渲染一个组件时,$(document).ready()
不会被调用。
有没有办法在每次<f:ajax>
重新渲染后运行javascript代码?
(我在技术上可以使用onevent
标签,但这对我来说是不利的解决方案,因为我必须在每个<f:ajax>
上调用该函数
仅举例说明,这是jQuery代码:
$(document).ready(function() { ...CODE... }
和JSF代码:
<f:ajax event="click" render=":someComponentID"/>
谢谢!
更新此问题可能与this one重复。我正在研究它。
UPDATE2 使用JSF Javascript事件绑定很容易解决这个问题:
jsf.ajax.addOnEvent(function(data){
if (data.status === 'success') {
// Do stuff here
}
}
在JSF 2参考
下阅读更多相关信息答案 0 :(得分:4)
当DOM从初始加载完全加载时,$(document).ready()
事件将触发一次。
ajax事件可能会更改DOM,但不会重新加载页面,因此$(document).ready()
不会再次触发。
我注意到Google在Gmail中解决此问题的方法是使用a high frequency timer。
答案 1 :(得分:0)
使用事件和听众..