我的问题的示例: 的 http://fiddle.jshell.net/FS8rj/
我有几个地方我不希望用户能够使用图标删除可折叠的东西 - 所以我想完全隐藏这个图标。
似乎jQuery Mobile为可折叠中的每个元素添加了填充,以便元素不会聚集在一起。
我尝试刷新整个列表视图,但是jQuery Mobile没有认识到我用jQuery隐藏了一个元素,并且无论如何都会继续添加填充。我知道一个解决方法是禁用图标而不是隐藏它,但我不想让它在屏幕上显示为灰色。
是否可以在不使用更多css或类似方法覆盖的情况下禁用此功能?
答案 0 :(得分:4)
jQuery Mobile使用拆分按钮将ui-li-has-alt
添加到li
。您只需删除该类,并在再次显示该按钮时将其添加回来。
$('li').removeClass('ui-li-has-alt');
修改:使用.closest()
从父级li
中移除课程。
$('.hide').hide().closest('li').removeClass('ui-li-has-alt');
答案 1 :(得分:2)
http://fiddle.jshell.net/njAt4/
用你的删除类将一个标签包装在div中,然后按你的意愿工作。
<div class="delete">
<a href="#" data-rel="popup" data-mini="false" data-position-to="window" data-icon="delete"></a>
</div>
这将完全删除此节点上的删除图标。
答案 2 :(得分:1)
http://fiddle.jshell.net/YGCQM/
解决方案是将“ui-li-count”的正确css属性覆盖为10px。当有一个隐藏或不隐藏的按钮时,它会变为53px。
if (reportViewModel.hasDisabledExpenses()) {
$('.delete').hide();
$('.delete').parent().find(".ui-li-count").css("right", "10px");
}