我正在使用插件jquery-tmpl。在运行模板后,是否可以指定回调?我想做类似的事情

<script id='itemTemplate' type='text/html'>
  <li class="item" id=${timestampMs}>
    <span class="content">${content}</span>
  </li>
  ${processItem($('#' + timestampMs))}
</script>


processItem对刚刚生成的<li>元素执行某些操作。但是,按照其编写的内容,该元素在调用processItem时不存在。

这是我运行模板的方式:

// Make the AJAX call to the service
$.ajax({
  dataType: "json",
  url: "/getItems",
  success: function(data) {
    // fill out template from json
    $('#itemTemplate').tmpl(data).appendTo('#container');
  }
});


谢谢!

最佳答案

调用.tmpl后,您可以对节点进行操作,因此可以执行以下操作:

$.ajax({
  dataType: "json",
  url: "/getItems",
  success: function(data) {
    // fill out template from json
    $('#itemTemplate').tmpl(data).each(function (index) {
      processItem($(this))
    }).appendTo('#container');
  }
});


这与您的解决方法类似,但是您不需要重新选择项目,并且应该能够链接呼叫。

10-07 17:22