.trigger('create')无法创建列表视图

时间:2012-08-30 05:11:55

标签: jquery-mobile

以下是我动态创建和增强页面的代码。类似的模式已经适用于许多其他类型,例如文本字段,按钮,网格视图等。但我发现它无法与listview一起使用。

$(document).bind("pagebeforechange", function route(e, data) {
    ...
    $content = $page.children(":jqmData(role=content)");
    var markup = '<ul id="calendarList" data-role="listview"><li>HELLO</li></ul>';
    $content.html(markup);
    $page.trigger('create');
    $.mobile.changePage($page);
});

我总会收到一条错误消息,例如

Cannot read property 'jQuery16409763167318888009' of undefined

通过使用Chrome进行调试,我发现它总是在$ page.trigger('create')行上失败;

1 个答案:

答案 0 :(得分:1)

我自己找到了解决方案。如果我更换了这条线,它的工作正常,

$page.trigger('create');

用,

$page.page();
$content.find( ":jqmData(role=listview)" ).listview();

但是,我仍然不明白为什么。我认为前者是一种更新,更简单的语法来取代后者。单次调用$ page.trigger('create');可以一次性增强整个页面。有谁知道这两者的区别?