环境:JSF 1.2 RI,RichFaces 3.3.2
我们使用jQuery来改变项目获得或失去焦点时的CSS类。这很直接了当,但是当我们的部分渲染完成后,我们没有看到这些焦点和模糊事件绑定到新渲染的表单元素上。这是可以预料的,因为这些事件在文档准备就绪时不在DOM上,但是我们尝试过使用一些插件(Listen和LiveQuery),因为.live()在1.3.2中无法正确地处理模糊和焦点事件,也不能在RichFaces提供的版本中使用。这些插件都应该处理放置在文档中的新创建的项目。然而,在实践中,这两个插件都没有按预期工作。
我们将输入/选择/文本区域包装在一个div或span中,以便在我们的Ajax请求中更新各种部分的呈现。这是由于RichFaces的一个限制,即在部分重新呈现时不检查项目的呈现。除了这个小问题之外,没有什么太激动人心的事情发生。
我使用$('ol').after(txtForNewListItem)添加了项目,并确认livequery对这些项目正常工作,但对于由JSF刚刚渲染的项目却没有效果。
有人遇到类似的结果并找到了合适的解决方法吗?我看到的一种方法是覆盖document.createElement,但我们真的希望尽可能避免这条路。
$('ol').after(txtForNewListItem)
可以正常工作,那么所有其他的 jQuery 触发器也应该能够正常工作。我对 JSF 没有任何了解。 - Steven