Jquery mobile 使用模板替换listview项时,“刷新”仅起部分作用

Jquery mobile 使用模板替换listview项时,“刷新”仅起部分作用,jquery-mobile,Jquery Mobile,我在jQuery移动页面中根据某些条件(月份日期,无论什么)替换listview项,并且我似乎只能部分应用样式。下面的示例将新的listview项格式化为部分正确,链接缺少其样式。我错过了什么 <!DOCTYPE html> <html> <head> <title>test</title> <meta name="viewport" content="width=device-width, initial-sc

我在jQuery移动页面中根据某些条件(月份日期,无论什么)替换listview项,并且我似乎只能部分应用样式。下面的示例将新的listview项格式化为部分正确,链接缺少其样式。我错过了什么

<!DOCTYPE html> 
<html>
<head>
    <title>test</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="../js/jquery.mobile-1.4.0-beta.1.min.css"/>
    <script src="../js/jquery-1.10.2.min.js"></script>
    <script src="../js/jquery.mobile-1.4.0-beta.1.min.js"></script>
    <script type="text/javascript">
    $(document).delegate("#index", "pageinit", function() {
        var newItem;
        if (false) {
            newItem = $("#templ1")[0].innerHTML
        } else {
            newItem = $("#templ2")[0].innerHTML
        }
        $("#item1")[0].innerHTML = newItem;
        $("#item1").parent().listview("refresh");
    });
    </script>
    <meta charset="utf-8">
</head>

<body>
<div data-role="page" id="index">
<script id="templ1" type="text/template">
<li id="item1"><a href="#">item1 templ1</a></li>
</script>
<script id="templ2" type="text/template">
<li id="item1"><a href="#">item1 templ2</a></li>
</script>
    <div data-role="header" data-position="fixed">
        <h1>test</h1>
    </div>
    <div data-role="content">
        <ul data-role="listview">
            <li data-role="list-divider">divider 1</li>
            <li id="item1"><a href="#">item1</a></li>
        </ul>
    </div>
</div>
</body>
</html>

测试
$(document).delegate(“#index”,“pageinit”,function()){
var新项目;
if(false){
newItem=$(“#temp1”)[0]。innerHTML
}否则{
newItem=$(“#模板2”)[0]。innerHTML
}
$(“#item1”)[0].innerHTML=newItem;
$(“#item1”).parent().listview(“刷新”);
});
  • 测试
    • 分隔符1

    使用
    .replaceWith
    注意,您使用的是测试版,jqm 1.4还没有发布。谢谢,我最终使用了类似的东西(使用一个id插入类,这样我可以替换多个项:
    函数replaceItems(list,className,newItemString){var lis=$.parseHTML(newItemString);lis=lis.slice(1,lis.length-1);$。每个(lis,函数(索引,值){value.className=className;});$(“+className).replacetwith(lis);list.listview(“刷新”);}