0

我创建了一个日历组件,所有的 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>

谢谢

4

2 回答 2

1

我认为在 java 生成代码 (JSF) 中使用 javascript 的最佳实践是将它们组织成 JSF 复合组件。这是一个很好的可重复使用的做法。JSF 2.0 版中包含的复合组件。

您可以查看Oracle 教程和这个BalusC示例。

问候,

于 2013-05-14T08:24:35.837 回答
1

我想出的最接近的方法是注册 ajax 回调document.ready并将 JS 应用于组件(要么应用于整个页面,要么获取呈现的 id 并将其应用于该页面)。如果能以某种方式开箱即用,那就太酷了。

 jsf.ajax.addOnEvent(function(data) {
         var ajaxstatus = data.status; 

         switch (ajaxstatus) {
             case "success": 
              alert('load the JS thing')
                 break;
         }
     });
于 2013-05-14T11:53:50.687 回答