jquery移动多页与javascript模板,并不总是“刷新”

时间:2012-11-23 15:12:24

标签: javascript jquery-mobile handlebars.js

我有一个多页面的jQuery移动页面。

当我从第1页到第2页时,我看到了我使用把手动态创建的模板。

模板:

<script id="history-template" type="text/x-handlebars-template">
        <div data-role="collapsible" id="share_history" >
       <h3>{{share_title}}</h3>
       {{#each historyItem}}
          <h2>Shared with {{shared_with}}</h2>
          {{#list people}}{{firstName}} {{lastName}}, {{role}}{{/list}}
      {{/each}}
    </div>
</script>

javascript:

var context = {
    share_title: "View Share History",
    historyItem:  [
            {
                shared_with: "with a group",
                people: [
                    {firstName: "Bob", lastName: "Wong", role: "Dad" },
                    {firstName: "Tina", lastName: "Turner", role: "Guardian" },
                    {firstName: "Modest", lastName: "Mouse", role: "Dad" }
                ]
            },
            {
                shared_with: "with 3 people",
                people: [
                    {firstName: "Baily", lastName: "Wong", role: "Dad" },
                    {firstName: "Gina", lastName: "Turner", role: "Guardian" },
                    {firstName: "Modest", lastName: "Mouse", role: "Dad" }
                ]
            }
        ]

};

var source   = $("#history-template").html();
var template = Handlebars.compile(source);

Handlebars.registerHelper('list', function(people, options) {
var out = "<ul class=>";

for(var i=0, l=people.length; i<l; i++) {
out = out + "<li>" + options.fn(people[i]) + "</li>";
}

return out + "</ul>";
});

    var html    = template(context);

    $('#share').html(html);
$.mobile.changePage('#add-edit');

当我从第1页到第2页(在我的多页布局中)时,它可以工作(很好)。

如果我点击后退按钮,然后返回第2页,我会看到我的内容...减去jQuery mobile添加的额外标记(即我看到内容但不是我的jQuery移动外观/主题。)

修改

对于我的例子,我必须做以下事情:

$('#share').html(html).trigger( "create" );

1 个答案:

答案 0 :(得分:3)

您需要在html元素上触发create事件,例如

el.trigger('create');