我创建邮件列表动态。 我有一个<ul>
标签,我产生内部动态列表。 不过,我不知道该如何分隔列表添加到这一点。 会有在JS的刷新方法,我可以打电话这将增加分隔后我的名单?
这是我有:
<ul id="messages" data-autodividers="true" data-role="listview" data-theme="c">
//a list of <li> are dynamically generated here
</ul>
这仅追加名录分隔到极顶,我需要几个人的内<li>
标记。 我的列表<li>
的是消息。 我希望能够通过日期有分隔,因此使得它更容易使用。
我有一个的jsfiddle http://jsfiddle.net/yVtVE/2/
该代码是有点不同,但它的工作原理
假设像这样的列表
<ul data-role="listview" id="MessagesList" data-autodividers="true">
<li date="2013-03-20"><a href="#">Event 1</a></li>
<li date="2013-03-20"><a href="#">Event 2</a></li>
<li date="2013-03-19"><a href="#">Event 3</a></li>
</ul>
您的代码会
$("#MessagesList").listview({
autodividers: true,
autodividersSelector: function (li) {
var out = li.attr('date');
return out;
}
}).listview('refresh');
原版的
从JQM文档http://api.jquerymobile.com/listview/
Autodividers
一个列表视图可被配置成自动生成其项目分频器。 这是通过添加一个数据autodividers =“true”属性的任何列表视图进行。
默认情况下,用于创建分隔文本是该项目的文本的大写的第一个字母。 另外,您可以通过设置列表视图的autodividersSelector选项编程方式指定分隔文本。 例如,要定制的选择添加到具有ID =“mylistview”的元素:
$( "#mylistview" ).listview({
autodividers: true,
// the selector function is passed a <li> element from the listview;
// it should return the appropriate divider text for that <li>
// element as a string
autodividersSelector: function ( li ) {
var out = /* generate a string based on the content of li */;
return out;
}
});
比方说,你有个约会在您的邮件您的代码将工作是这样的
$( "#mylistview" ).listview({
autodividers: true,
autodividersSelector: function ( li ) {
var re = /\/\d{4}\/\d{2}\/\d{2}/i;
var out = $(this).html().match(re);
return out;
}
});
我没有测试此代码,它可能有缺陷,但它会给你一个想法去尝试。
文章来源: how to create auto list dividers when dynamically creating a list in jquery mobile