JQuery Mobile UL列表样式不适用于动态列表

时间:2012-08-27 00:21:24

标签: javascript listview jquery-mobile

有没有人想出任何JQuery Mobile UL列表视图的解决方案?

我目前正在使用JQuery Mobile 1.1.2 Alpha,我指的是一个旧的错误:

jQuery Mobile proper way to initialize a listview

我的列表视图如下所示:

<ul data-role="listview" id="store-info">
        <li>My First Store</li>
        <li>48 Big Oak Lane </li>
        <li>Stamford</li>
        <li>CT</li>
        <li>06903</li>
</ul>

我试过用:

$( "#store-info" ).listview();

还有这个:

$('#stores_main_view').trigger('create');

以下

<div data-role="content" id="stores_main_view" class="content ui-content" role="main">
<ul data-role="listview" class="ui-listview">
        <li>
    <form class="product-form">
        <ul data-role="listview" id="store-info">
        <li>My First Store</li>
        <li>48 Big Oak Lane </li>
        <li>Stamford</li>
        <li>CT</li>
        <li>06903</li>
</ul>

    </form>
</li>
</ul>
</div>

尝试动态创建列表时,两者都会产生相同的错误:

Uncaught TypeError: Cannot read property 'jQuery1710409190776059404' of undefined 

这个问题还有什么好的解决方案吗?

2 个答案:

答案 0 :(得分:5)

jQuery移动代码(在方法_createSubPages中,正是您在评论中引用的那个)期望创建的控件位于.ui-page中。

在调用trigger('create')之前,只需在控件所在页面上添加类就可以解决问题。

$('#page-id').addClass('ui-page')

如果你做了

,它也有效
$.mobile.loadPage('#page-id')

希望这有帮助。

答案 1 :(得分:0)

试试这个:

$("#nav-panel").load("nav-panel.html", function () {
    $(this).trigger("create");
});