【问题标题】:jQuery mobile listview change select item and highlight itjQuery mobile listview 更改选择项并突出显示它
【发布时间】:2013-04-01 17:41:55
【问题描述】:

在一个页面中,有一个listview,第一项被选中:

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'”样式,而第一项删除主题。如何才能做到呢?

【问题讨论】:

    标签: javascript jquery css html jquery-mobile


    【解决方案1】:

    您可以按照以下方式进行操作

    $('#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

    上的示例

    【讨论】:

    • 很高兴它对你有用。如果对您有帮助,请考虑将其标记为答案。
    【解决方案2】:

    使用 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'));
                });
    

    【讨论】:

    • 谢谢,但它不起作用。我点击了其他项目,没有改变主题。
    猜你喜欢
    • 2017-04-05
    • 2011-12-30
    • 2015-09-08
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多