我正在将列表项列表视图添加到jQuery移动可折叠网格中。这是我的Default.js代码
$(document).ready(function () {
var appNames = getApprovalNames(phone, pin);
for (var i = 0; i < appNames.length; i++) {
var header = '<h3>' + appNames[i].Name + '</h3>';
var ulHeader = '<ul data-role="listview" id="myAppsSectionGridTable">';
var approvals = getApprovalInformation(phone, pin, appNames[i].Name);
var listArray = new Array();
for (var j; j < approvals.length; j++) {
var link = '<li><a href="' + 'NickData' + '"' + '><img src="';
var detailHeader = '" alt="" class="ui-li-icon"/>' + '<h3>' + 'NickData' + '</h3>';
var detail = '<p>' + 'NickData' + '</p>' + '</a>' + '</li>';
var list_item = link + detailHeader + detail;
listArray.push(list_item);
}
var entire_list = null;
for (var y in listArray) {
entire_list = entire_list + listArray[y];
}
$('#accMain').append(header + ulHeader + entire_list + '</ul>');
}
});
此代码在屏幕上显示数据,但屏幕上没有任何jQuery mobile css。另外,当我在源代码中查看它时,我看不到我新创建的标记。我是在错误的事件中加了这个吗?如果我只是对页面中的标记进行硬编码,一切正常。它与动态添加jQuery移动标记有关。
<asp:Content ID="HContent" ContentPlaceHolderID="HeadContent" runat="server">
<script src="Js/Pages/Default.js" type="text/javascript"></script>
</asp:Content>
<asp:Content ID="THContent" ContentPlaceHolderID="TopHeaderContent" runat="server">
<h1>
Applications</h1>
</asp:Content>
<asp:Content ID="MContent" ContentPlaceHolderID="MainContent" runat="server">
<div id="accMain" data-role="collapsible" data-inset="false" data-collapsed="false">
</div>
</asp:Content>
此主页面正文为..
<body>
<div data-role="page" data-theme="b">
<div data-role="header" data-position="fixed">
<asp:ContentPlaceHolder ID="TopHeaderContent" runat="server"></asp:ContentPlaceHolder>
</div><!-- /header -->
<div data-role="content">
<asp:ContentPlaceHolder ID="MainContent" runat="server"></asp:ContentPlaceHolder>
</div><!-- /content -->
<div data-role="footer" data-position="fixed">
<asp:ContentPlaceHolder ID="FooterContent" runat="server"></asp:ContentPlaceHolder>
</div><!-- /footer -->
</div><!-- /page -->
</body>
答案 0 :(得分:6)
您需要调用listview方法
$('#mylist').listview()
如果您只是将内容添加到现有列表视图,请调用refresh
方法
$('#mylist').listview('refresh');
有时您可能需要在pageshow
事件中调用它,如下所示
$('#myPage').on('pageshow', function() {
try
{
$('#mylist').listview('refresh');
} catch (e) {
$('#mylist').listview();
}
});
如果要添加需要增强的多个小部件/项目,则可以尝试触发创建事件
$('#myPage').trigger('create');