jQuery移动列表视图更改选择项并突出显示它

时间:2013-04-01 09:24:26

标签: javascript jquery css html5 jquery-mobile

在页面中,有一个列表视图,第一个项目被选中:

var len = results.rows.length,
$list = $("#listAddr");
var $strHTML  =" ";
for (var i = 0; i < len; i++) {
    $strHTML += '<li ';
    if (i == 0) {
        $strHTML += ' data-theme="b" ';
    }


    $strHTML += '> <a href="#" data-ajax="false"';
    $strHTML += ' data-id="' + results.rows.item(i).Id + '">' + results.rows.item(i).Name + '</a></li>';
}

$list.html($strHTML);
$list.delegate('li a', 'click',function(e){
//  $("#listAddr").attr("li").removeClass("liSel");
    $(this).addClass("data-theme='b'");
    $("#listAddr").listview("refresh");
    //$(this).removeClass("data-theme");
    clickAddr($(this).data('id'));
});

当我选择第三个项目时,我希望第三个项目是“data-theme ='b'”样式和第一个删除主题的项目。如何才能做到?

2 个答案:

答案 0 :(得分:5)

您可以执行以下操作

$('#listAddr li').bind('click', function () {
    $('#listAddr li').attr("data-theme", "c").removeClass("ui-btn-up-b").removeClass('ui-btn-hover-b').addClass("ui-btn-up-c").addClass('ui-btn-hover-c');
    $(this).attr("data-theme", "b").removeClass("ui-btn-up-c").removeClass('ui-btn-hover-c').addClass("ui-btn-up-b").addClass('ui-btn-hover-b');
});

以下是 Live fiddle

的示例

答案 1 :(得分:0)

使用data()来更改数据属性......

$.removeData($list.find('li'), "theme");
$(this).data("theme",'b');

试试这个

  $list.on('click','li a',function(e){
                $.removeData($list.find('li'), "theme");
                $(this).data("theme",'b');
                $("#listAddr").listview("refresh");

                clickAddr($(this).data('id'));
            });