JQM填充隐藏元素

时间:2013-07-08 18:17:56

标签: jquery css jquery-mobile knockout.js

我的问题的示例: 的 http://fiddle.jshell.net/FS8rj/

我有几个地方我不希望用户能够使用图标删除可折叠的东西 - 所以我想完全隐藏这个图标。

似乎jQuery Mobile为可折叠中的每个元素添加了填充,以便元素不会聚集在一起。

我尝试刷新整个列表视图,但是jQuery Mobile没有认识到我用jQuery隐藏了一个元素,并且无论如何都会继续添加填充。我知道一个解决方法是禁用图标而不是隐藏它,但我不想让它在屏幕上显示为灰色。

是否可以在不使用更多css或类似方法覆盖的情况下禁用此功能?

3 个答案:

答案 0 :(得分:4)

jQuery Mobile使用拆分按钮将ui-li-has-alt添加到li。您只需删除该类,并在再次显示该按钮时将其添加回来。

  

Demo

$('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");
}