使用JQuery mobile创建ListView无法正常工作

时间:2013-07-19 08:46:32

标签: javascript listview jquery-mobile dynamic

使用JQuery mobile我想将一个ul-ListView添加到一个窗口,通过JScript动态创建它,有一个问题。

当我将ListView固定为HTML时,一切正常。该定义类似于

    ...            
        <div data-role=content>
             <ul id='listviewAktuelleChecklist' data-role=listview data-theme="d" data-divider-theme="d" data-inset=true>
                <li id="listDividerAktuelleChecklist" data-role=list-divider>yyy Checklist</li>
                <li id='LoadChecklist'> <a> Checkliste von Market-Value laden </a></li>
            </ul>
        </div>
   ...

并且在Firefox中显示它正是预期的内容。但是当我用JScript创建它时,它看起来像是:

(对不起,伙计们,由于缺少参考资料,我不允许在这里添加图片,所以这是图片的链接: http://www.market-value.de/downloads/ul.jpg

顶级ListView是我通过HTML定义获得的,在“确定”按钮下面生成的内容(对于那些不查看图片的人:生成的Listviw显示为带有项目符号的普通HTML“ul”。 ..)

我使用了那段代码:

$("#BTN1").bind  ("click", function (event)
{
 var html = "";
 html += "<ul id='ChecklistListea' data-role=listview data-theme='d' data-divider-theme='d' data-inset=true>"
 html += '<li id="listDividerAktuelleChecklista" data-role=list-divider>yyy Checklist</li>'
 html +=   "<li id='LoadChecklista'> <a> Checkliste laden </a></li>";
 html += "</ul>";
 $(html).appendTo('#DivChecklistListe');

    $("#ChecklistListe").listview("refresh");

});

我尝试了一些不同的方法来创建动态HMTL,但结果总是一样。

有谁知道,这里出了什么问题?

ps:如果我直接在HMTL中定义ListView并且只添加ListItems,一切正常!

1 个答案:

答案 0 :(得分:1)

首先,您在错误的ID上调用refresh,但即使ID正确,也无效。这是因为你是从头开始创建一个listview,带有内部li元素的ul元素。

在这种情况下,调用listview('refresh')是不够的,因为listview首先必须先进行初始化才能刷新。

可以这样做:

$("#ChecklistListea").listview().listview("refresh");

首先 .listview() 调用将初始化一个列表视图,第二个将调整它的样式。

工作示例:http://jsfiddle.net/Gajotres/4HRNK/