设置自动分隔符的自定义属性
Set custom attribute for autodividers
我正在尝试划分一个在jQuery mobile中动态填充的ListView。我正在设置一些具有属性status="true"
的列表项和一些属性为status="false"
的列表项,并想知道是否可以自动将它们分为两组(已下载/未下载)?
这是我的HTML:
<div role="main" class="ui-content jqm-content">
<div>
<ul id="linkList" data-role="listview" data-autodividers="true">
</ul>
</div>
</div>
我的JS:
var $li;
var $status = 'false';
window.resolveLocalFileSystemURL(fileSource + val.title + ".pdf", success, fail);
// if file exists
function success() {
$li.find("a").on("click", function(){ openPdf(val.title); });
$status = 'true';
}
// if file doesnt exists
function fail() {
$li.find("a").on("click", function(){ downloadPdf(val.title,val.url); });
$status = 'false';
}
$li = $("<li><a href='#' status=''+status+''>"+val.title+"</a></li>");
$("#linkList").append($li).listview('refresh');
$("#linkList").listview({
autodividers: true,
autodividersSelector: function (li) {
var out = li.attr('status');
return out;
}
}).listview('refresh');
那么,有没有可能自动完成,或者我必须通过代码进行排序,并添加分隔符。代码本身根本没有添加任何分隔符。
首先,只有当您的列表已经按状态排序时,自动分隔符才真正起作用。因此,在将其添加到UL之前,您需要对其进行排序。
接下来,对于状态,您可以使用LI上的数据属性或LI:中的锚点
'<li ><a href="#" data-status="' + item.status +'">' + item.val + '</a></li>'
然后在添加项目时,设置autodividersSelector以检索锚点上的数据属性:
$('#linkList')
.empty()
.append(allfiles)
.listview({
autodividers:true,
autodividersSelector: function ( li ) {
var out = li.find('a').data("status");
return out;
}
})
.listview("refresh");
工作演示
相关文章:
- 设置自动分隔符的自定义属性
- 与ng attr myCustomAttribute匹配的自定义属性指令
- 获取自定义属性的值
- 如何创建自定义属性以添加if.bind
- 动态更新Angular2指令中自定义属性的值
- 使用jQuery更改输入字段的自定义属性
- 在 Javascript 生成的列表中,如何将自定义属性添加到 标记
- 设置 HTML 自定义属性与在 ID 属性中存储信息
- 是否可以在 Polymer 中的
节点上使用自定义属性以获得漂亮的 API - 为什么克隆节点排除自定义属性
- 将自定义属性添加到 vuejs 组件
- 使用原型对象向javascript对象添加自定义属性和方法的建议
- 正在设置自定义属性名称
- datalist获取选定的值和自定义属性(无事件)
- 如何使用javascript获取元素的自定义属性值
- 在jQuery方法中编写自定义属性的正确语法是什么
- 自定义属性jquery Datatables
- 使用 css() 更改自定义属性不起作用
- 使用Javascript从按钮获取自定义属性
- 如果至少有一个选定项目具有自定义属性,如何隐藏HTML5分隔符