如何在“jquery-tmpl”中创建一个小部件?
问题描述:
我必须为jquery-tmpl脚本中的div创建一个小部件。如何在“jquery-tmpl”中创建一个小部件?
<script id="movieTemplate" type="text/x-jquery-tmpl">
<div id='name'>${Name}</div>
</script>
在上面的脚本中,我想访问name
div并创建一个小部件。
注意:我要将该脚本追加到另一个小部件,所以在这里我不知道“这个模板的父母是什么”。
我怎么能做到这一点?
答
在你展示的代码,该字符串<div id='name'>${Name}</div>
是script
节点内,故不翻译成DOM节点,你不能真正渲染模板之前访问div
节点。
可以渲染节点:$.tmpl(myTemplate, myData).appendTo(myDomElement)
,并然后您可以访问创建的节点:$(myDomElement).find('div#name')
,做任何你想做的事情(如:$(myDomElement).find('div#name').datepicker()
...)
答
模板只是一些工作,使建筑html字符串更容易,它们不适用于小部件初始化等任何逻辑。
将html转换为dom的代码是创建widget的位置。你的模板应该不知道“这个模板的父类是什么”,因为它只是一个哑字符串。
为什么downvote?我所说的是最终不可否认的真理:) – Esailija 2012-07-30 09:19:05