【问题标题】:Apply css to listview after adding list elements添加列表元素后将css应用于listview
【发布时间】:2013-03-28 10:24:15
【问题描述】:

在获取数据后,我正在使用 JSON 将元素添加到列表中,我执行以下操作:

success: function(data){          
  var list = $('#' + HTMLfieldName[index] + 'Ul');
  $.each(data, function() {
    newLi = document.createElement('li');
    ref = document.createElement('a');
    ref.innerHTML = this.description;
    ref.href = '#' + this.code;
    newLi.appendChild(ref);
   list.append(newLi);
   });          
}

这很好用,但列表中的元素显示为普通 href(蓝色和下划线),而不是列表视图示例中使用的漂亮 CSS。

这是代码渲染后的样子:

<ul class="levelUl ui-listview ui-listview-inset ui-corner-all ui-shadow" data-role="listview" data-inset="true" name="famUl" id="famUl">
  <li><a href="#2930">Finishing</a></li>
  <li><a href="#2910">Speciality Printing</a></li>
  <li><a href="#2900">Toner</a></li>
</ul>

如果我将该代码粘贴到 HTML 页面中,它看起来不错。

在将 CSS 添加到页面后,我是否需要执行一些操作来应用 CSS?

【问题讨论】:

    标签: javascript jquery css jquery-mobile jquery-mobile-listview


    【解决方案1】:

    您必须在动态添加的列表视图元素上触发标记增强:

    $('ul#id').listview('refresh'):
    

    现场示例:http://jsfiddle.net/Gajotres/LrAyE/

    基本上你的代码应该是这样的:

    success: function(data){          
        var list = $('#' + HTMLfieldName[index] + 'Ul');
        $.each(data, function() {
            newLi = document.createElement('li');
            ref = document.createElement('a');
            ref.innerHTML = this.description;
            ref.href = '#' + this.code;
            newLi.appendChild(ref);
            list.append(newLi);
        });
        list.listview('refresh');    
    }
    

    请记住,您必须在 each 循环之后调用 .listview('refresh');

    要了解更多信息,请阅读我的另一篇ARTICLE,或查找HERE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      相关资源
      最近更新 更多