【问题标题】:Listview looks weird - jQueryListview 看起来很奇怪 - jQuery
【发布时间】:2013-07-01 14:59:30
【问题描述】:

我的 ListView 出现了一些问题。 它没有 jQuery 提供的漂亮外观,只是一个简单的列表,我不知道这是怎么来的。

这是代码(HTML)

<div data-role="page" id="home">
    <div data-role="header">
        <h1>Bestelling</h1>
        <a class="ui-btn-right" href="#toevoegen">+</a>
    </div>

    <div data-role="content">
        <ul data-role="listview" data-inset="true" id="bestellingLijst">
            <!-- Hier komt de bestelling -->
        </ul>
    </div>
</div>

这是我在列表视图中添加新 &lt;li&gt; 的代码

$("#bestellingLijst").append("<li>" + naam + ' - ' + prijs + "</li>");

有人可以帮我吗? 谢谢!

【问题讨论】:

  • 你包含 css 了吗?
  • @karthikr 不,我没有
  • 您需要包含 CSS。 jQuery 只提供 javascript 部分,不提供 CSS。您可能想要包含 jquery-ui css 或 bootstrap css 或其他东西来获得样式
  • 好吧,我已将“jquery.mobile-1.3.1.min.css”链接为我的样式表。这够了吗?还是我需要更多?

标签: jquery listview jquery-mobile mobile


【解决方案1】:

解决方案

有时,需要使用promise 使listview("refresh") 等到追加完成,然后调用成功处理程序,该处理程序在listview 上运行refresh

$("#bestellingLijst").append("<li>" + naam + ' - ' + prijs + "</li>").promise().done( function(){
    $(this).listview('refresh');
});

如果您在循环中调用 append,最好先将其存储在变量中,然后将其全部附加到 #bestellingLijst 中:

var i = 0;
var li = "";
for(; i< array.length; i++)
{
  //concat to string
  li += "<li>" + naam + ' - ' + prijs + "</li>";
}
$("#bestellingLijst").append(li).promise().done( function(){
      $(this).listview('refresh');
});

演示

http://jsfiddle.net/hungerpain/CdQTW/

有关所用方法的更多信息

listview("refresh")

promise

done

附加内容

而且,我希望你在这样的 jQM 的页面事件方法中调用这个刷新,如果你在页面加载时运行这个:

$(document).on("pageinit", "#home", function () {
  //append to ul
  //refresh the listview
}); 

【讨论】:

  • 太好了,解决了!感谢您提供有趣的信息,我真的很感激。这就是为什么我如此喜欢 Stackoverflow :-D
【解决方案2】:

如果您将项目添加到列表视图,则需要对其调用 refresh() 方法来更新样式并创建添加的任何嵌套列表。

$('#bestellingLijst').listview('refresh');

【讨论】:

  • 这并没有解决任何问题。列表视图看起来仍然一样
  • 这是一个正确的答案,你可能做错了。你能发布更多你的代码吗?
猜你喜欢
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 2018-08-29
  • 2021-03-25
  • 2015-03-20
  • 2011-07-19
  • 2021-12-03
  • 1970-01-01
相关资源
最近更新 更多