8

我必须为 jquery-tmpl 脚本中的 div 创建一个小部件。

<script id="movieTemplate" type="text/x-jquery-tmpl"> 
      <div id='name'>${Name}</div>
</script>

在上面的脚本中,我想访问namediv 并创建一个小部件。

注意:我打算将该脚本附加到另一个小部件中,所以在这里我不知道“这个模板的父级是什么”。

我怎么能做到这一点?

4

2 回答 2

3

在您显示的代码中,字符串<div id='name'>${Name}</div>位于节点内部,因此不会转换为 DOM 节点,并且在实际呈现模板之前script您无法访问该节点。div

您可以渲染节点:$.tmpl(myTemplate, myData).appendTo(myDomElement)然后您可以访问创建的节点:$(myDomElement).find('div#name')并使用它做任何您想做的事情(例如:$(myDomElement).find('div#name').datepicker()...)

于 2012-07-24T12:21:19.003 回答
0

模板只是使构建 html 字符串更容易的东西,它们不适用于诸如小部件初始化之类的逻辑。

将 html 转换为 dom 的代码是小部件创建的地方。您的模板确实不应该知道“这个模板的父级是什么”,因为它只是一个哑字符串。

于 2012-07-29T22:25:39.897 回答