【发布时间】:2011-01-01 19:33:40
【问题描述】:
环境: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,但我们真的希望不惜一切代价避免这条路径。
【问题讨论】: