我正在实现一个“尚未查看”列表,其中用户看到ul中的项目列表,而用户未查看的项目列表中应用了数据主题以突出显示它们。当用户点击它显示的项目时,我需要删除数据主题,以便不再突出显示该项目。
我有正确删除属性的逻辑,正如我在Chrome开发者工具的“元素”部分中看到的那样,该属性不再属于li。但突出显示在渲染页面中仍然可见。
我已经搜索并看到了一些涉及刷新页面,列表等的建议,但都无济于事。你可以看到如下的一些尝试(在函数“this”中是li):
$(this).removeAttr("data-theme");
//$(this).closest("ul").listview("refresh");
//$(this).closest("ul").listview();
//$('#mylist').listview();
//$("#content-notifications").page();
//$("#content-notifications").page("destroy").page();
//if ( $("#content-notifications").data("page") ) {
// $(this).closest("ul").listview("refresh");
//};
任何人都有正确的解决方案,因为我找不到它!
谢谢 -
马特
答案 0 :(得分:1)
您必须手动删除li中旧主题的类,并添加新主题的类。
$(document).on("click","li",function(){
$(this).attr("data-theme","b").removeClass("ui-btn-up-a").addClass("ui-btn-up-b")
});
在这里演示 - http://jsfiddle.net/ENYxw/