1

我正在实现一个“尚未查看”列表,其中用户在 ul 中看到项目列表,并且用户尚未查看的项目应用了数据主题来突出显示它们。当用户单击它显示的项目时,我需要删除数据主题,以便该项目不再突出显示。

我有正确的逻辑来实际删除该属性,正如我在 Chrome 开发者工具的 Elements 部分中看到的那样,该属性不再位于 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");
        //};

任何人都有正确的解决方案,因为我找不到它!

谢谢-

马特

4

1 回答 1

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/

于 2012-12-13T06:46:41.217 回答