Среда: JSF 1.2 RI, RichFaces 3.3.2
Мы используем jQuery для изменения классов CSS, когда элементы получают или теряют фокус. Это довольно прямолинейно, однако, когда наши частичные рендеры завершены, мы не видим эти события фокуса и размытия, привязанные к вновь визуализируемым элементам формы. Этого следовало ожидать, так как эти события не находятся в DOM после того, как документ готов, однако мы попытались использовать несколько плагинов (Listen и LiveQuery), поскольку .live() не работает должным образом для событий размытия и фокуса. ни в версии 1.3.2, ни в версии, поставляемой с RichFaces. Предполагается, что каждый из этих плагинов обрабатывает вновь созданные элементы, размещенные в документе. На практике, однако, ни один из них не ведет себя так, как ожидалось.
Мы оборачиваем наши input/selects/textareas в div или span, чтобы рендеринг различных фрагментов обновлялся по нашим Ajax-запросам. Это связано с ограничением в RichFaces, когда рендеринг элементов не проверяется при частичном повторном рендеринге. Кроме этого небольшого кусочка, ничего особенно интересного не происходит.
Я добавил элементы с помощью $('ol').after(txtForNewListItem) и подтвердил, что livequery правильно работает для этих элементов, но не для элементов, которые были недавно обработаны JSF.
Кто-нибудь имел аналогичные результаты и нашел подходящий обходной путь? Один метод, который я видел, состоял в том, чтобы переопределить document.createElement, но мы действительно надеемся избежать этого пути любой ценой.