【问题标题】:JQuery Mobile - Dynamic Count BubblesJQuery Mobile - 动态计数气泡
【发布时间】:2012-03-18 13:42:50
【问题描述】:

我正在创建一个具有列表视图的 JQuery Mobile 应用程序。我正在使用 Web 服务的结果填充该列表视图。因此,列表视图中的项目正在被填充,如下所示:

$.each(results, function (i, result) {
  var s = "<li><h2 style='padding-left:40px;'>" + result.title + "</h2><p style='padding-left:40px;'>";
  s += result.subTitle;
  s += "</p><span class='ul-li-count'>" + result.count + "</span></li>";

  $("#resultListView").append(s);
});
$("#resultListView").listview("refresh");

我的列表视图被正确填充。计数气泡的值正在显示。但是,UI 不会呈现气泡。有没有办法在列表视图中动态构建带有计数气泡的结果集?如果有,怎么做?

谢谢!

【问题讨论】:

    标签: jquery-mobile


    【解决方案1】:

    你的方法应该行得通。我唯一能想到的就是 HTML 无效。

    无论如何,我创建了一个简单的版本来证明它是可能的。 http://jsfiddle.net/kiliman/HDUqp/

    基本上,只需为 &lt;li/&gt; 构建 HTML 并附加到列表中,然后调用 .listview('refresh')

    $('#page1').bind('pageinit', function(e, data) {
        var n = 0;
        $('#addResult').click(function(e) {
            var $list = $('#resultListView');
    
            n++;
            $('<li/>')
                .append($('<h2>', { text: 'Title ' + n }))
                .append($('<p>', { text: 'SubTitle ' + n }))
                .append($('<span />', { text: n, class: 'ui-li-count'}))
                .appendTo($list);
            $list.listview('refresh');
        });
    });
    

    【讨论】:

    • 我的 +1 导致您的示例有效,但我强烈建议不要将 append() 方法与您的示例中的新 jquery 对象链接起来。构建 HTML 字符串然后调用 append 一次更有效。
    • 我通常使用模板来生成 HTML。对于示例,我只是想确保创建了正确的 HTML。
    • @shanabus 我认为以这种方式使用附加是完全合理的。在除了最受欢迎的网站之外的所有网站中,这一点 javascript 都不会影响用户感知的性能,也不会影响负责服务器的操作人员的性能。在这种情况下,可读性比替代字符串连接更好。
    • @CodeMonkeyKing - 你可能是对的,这可能并不重要。这有点取决于加载了多少数据。观察这些家伙的测试结果 - learningjquery.com/2009/03/…。我喜欢冗长,但这是否胜过可用性?猜猜这一切都取决于你的目标受众,但在我的手机上,我会尽我所能。
    猜你喜欢
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2015-10-26
    • 1970-01-01
    • 2015-07-11
    相关资源
    最近更新 更多