【问题标题】:How to create a widget inside the "jquery-tmpl"?如何在“jquery-tmpl”中创建一个小部件?
【发布时间】:2012-07-19 13:48:36
【问题描述】:

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

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

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

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

我怎样才能做到这一点?

【问题讨论】:

    标签: jquery jquery-templates


    【解决方案1】:

    在您显示的代码中,字符串&lt;div id='name'&gt;${Name}&lt;/div&gt;script 节点内,因此它不会被转换为DOM 节点,并且在实际渲染之前您无法访问div 节点 模板。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 为什么投反对票?我说的是终极不可否认的事实:)
      猜你喜欢
      • 2020-03-08
      • 2018-06-20
      • 2013-06-18
      • 1970-01-01
      • 2016-11-05
      • 2017-06-16
      • 1970-01-01
      • 2011-01-31
      • 2022-01-25
      相关资源
      最近更新 更多