jquery - jQM ListView ('refresh' );正在打破插图列表

标签 jquery html css jquery-mobile

我似乎无法找出发生这种情况的原因:我在 jQuery Mobile 中有一个无序列表 data-inset="true"当它第一次呈现时,它的顶部和底部看起来非常完美。但是,在向列表动态添加新元素并调用 listview('refresh') 之后在其上,它呈现为非插入列表。

更新:这只会在调用 listview('refresh'); 时发生在不在当前事件页面上的列表上。当您转到带有列表的页面时, ListView 会更新为与插入列表相关的所有样式,除了顶部和底部的圆 Angular 。要重现此错误,请使用:http://jsfiddle.net/94X7S/10/

这是调用 .listview('refresh'); 之前列表中 HTML 的样子

<ul data-role="listview" data-inset="true" data-theme="c" data-divider-theme="b" class="ui-listview ui-listview-inset ui-corner-all ui-shadow">
    <li data-role="list-divider" role="heading" class="ui-li ui-li-divider ui-btn ui-bar-b ui-corner-top ui-btn-up-undefined">
        User Reviews (4) <span class="rate"><img src="..." alt="Rating"/></span>
    </li>
    <li data-theme="c" class="ui-btn ui-btn-up-c ui-btn-icon-right ui-li-has-arrow ui-li">
        <div class="ui-btn-inner ui-li" aria-hidden="true">
            <div class="ui-btn-text">
                <a href="#reviews" class="ui-link-inherit">
                    <h3 class="ui-li-heading"><img src="..." alt="Rating"/>Review Title</h3>
                    <p class="ui-li-desc">Review Content...</p>
                </a>
            </div>
            <span class="ui-icon ui-icon-arrow-r ui-icon-shadow"/>
        </div>
    </li>
    <li data-theme="c" class="ui-btn ui-btn-up-c ui-btn-icon-right ui-li-has-arrow ui-li ui-corner-bottom">
        <div class="ui-btn-inner ui-li" aria-hidden="true">
            <div class="ui-btn-text">
                <a href="#reviews" class="ui-link-inherit">
                    <h3 class="ui-li-heading"><img src="..." alt="Rating"/>Review Title</h3>
                    <p class="ui-li-desc">Review Content...</p>
                </a>
            </div>
            <span class="ui-icon ui-icon-arrow-r ui-icon-shadow"/>
        </div>
    </li>
</ul>

下面是列表中的 HTML 在调用 .listview('refresh'); 之后的样子 <

ul data-role="listview" data-inset="true" data-theme="c" data-divider-theme="b" class="ui-listview ui-listview-inset ui-corner-all ui-shadow">
    <li data-role="list-divider" role="heading" class="ui-li ui-li-divider ui-btn ui-bar-b">
        User Reviews (4) <span class="rate"><img src="..." alt="Rating"/></span>
    </li>
    <li data-theme="c" class="ui-btn ui-btn-up-c ui-btn-icon-right ui-li-has-arrow ui-li">
        <div class="ui-btn-inner ui-li" aria-hidden="true">
            <div class="ui-btn-text">
                <a href="#reviews" class="ui-link-inherit">
                    <h3 class="ui-li-heading"><img src="..." alt="Rating"/>Review Title</h3>
                    <p class="ui-li-desc">Review Content...</p>
                </a>
            </div>
            <span class="ui-icon ui-icon-arrow-r ui-icon-shadow"/>
        </div>
    </li>
    <li data-theme="c" class="ui-btn ui-btn-up-c ui-btn-icon-right ui-li-has-arrow ui-li">
        <div class="ui-btn-inner ui-li" aria-hidden="true">
            <div class="ui-btn-text">
                <a href="#reviews" class="ui-link-inherit">
                    <h3 class="ui-li-heading"><img src="..." alt="Rating"/>Review Title</h3>
                    <p class="ui-li-desc">Review Content...</p>
                </a>
            </div>
            <span class="ui-icon ui-icon-arrow-r ui-icon-shadow"/>
        </div>
    </li>
</ul>

请注意第一个和最后一个 <li> 上的一些类在 listview('refresh'); 之后丢失- 是否有发生这种情况的原因或可以采取哪些措施来防止这种情况发生?任何帮助将不胜感激。

最佳答案

导航到第二页时我明白你的意思了。解决方法是仅在实际显示页面时 refresh listview 元素:

$('.add').click( function(){

    //you can combine selectors by adding a comma in-between them
    $('#1, #2').append('<li>' + count + '</li>');

    //refresh the listview on the current page (if it exists)
    $(this).closest('.ui-content').find('.ui-listview').listview('refresh');

    count++;
});

$('[data-role="page"]').bind('pageshow', function () {

    //refresh the listview on the current page (if it exists)
    $(this).find('.ui-listview').listview('refresh');
});

这是一个演示:http://jsfiddle.net/94X7S/12/

关于jquery - jQM ListView ('refresh' );正在打破插图列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932218/

相关文章:

javascript - 快速移动光标时的jquery悬停问题

javascript - 如何从绑定(bind)到具有该元素 id 的元素的类中调用函数?

html - 浏览器不关心基于 IMG 元素的大小

javascript - 来自 CSS ID 的百分比变量

jquery - 如何设置 JPlayer 海报元素的样式?

jquery - 选择正确的元素进行动画处理

javascript - 带箭头的 highcharts 单线

javascript - 下拉 Javascript 错误 : object doesn't support property or method 'matches'

Javascript - 内容中带有列表的选项卡

jQuery .attr() 导致 Internet Explorer 崩溃