我创建了一个Calendar组件,所有JS都应用于document.ready
。当我进行Ajax调用并重新渲染组件时,JS / JQuery就不再存在了。这可以通过在线添加JS来解决,但是具有性能开销。重新呈现组件后,如何重新应用我的JS行为?
我生成的HTML代码如下所示。
<div class="input-append date">
<input data-format="dd/MM/yyyy hh:mm:ss" type="text"></input>
<span class="add-on">
<i data-time-icon="icon-time" data-date-icon="icon-calendar"> </i>
</span>
</div>
由于
答案 0 :(得分:1)
我认为在java生成代码(JSF)中使用javascript的最佳实践是将它们组织成JSF复合组件。这是一个很好的可重用实践。复合组件,包含在JSF 2.0版本中。
您可以查看Oracle tutorial和此BalusC示例。
此致
答案 1 :(得分:1)
我最接近的是在document.ready
上注册ajax回调并为组件应用JS(要么是整个页面,要么获取渲染的ID并将其应用于此)。如果以某种方式这可能是开箱即用的话会很酷。
jsf.ajax.addOnEvent(function(data) {
var ajaxstatus = data.status;
switch (ajaxstatus) {
case "success":
alert('load the JS thing')
break;
}
});