如何在重新呈现JSF组件时重新应用JS / jQuery document.ready?

时间:2013-05-13 19:23:01

标签: javascript jquery ajax jsf

我创建了一个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>

由于

2 个答案:

答案 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;
         }
     });