jquery显示/隐藏div和计数器
我有一个随机的div数(最少1个,最多10个) 这将删除单击的div,导致下面的所有div向上移动一个。这是我想要的效果 然而,我需要一些逻辑 如果我有少于5个div,关闭设备应该被禁用。如果我有5个以上的div,那么当一个div“关闭”时,我希望下一个“隐藏”div变为可见jquery显示/隐藏div和计数器,jquery,html,list,loops,Jquery,Html,List,Loops,我有一个随机的div数(最少1个,最多10个) 这将删除单击的div,导致下面的所有div向上移动一个。这是我想要的效果 然而,我需要一些逻辑 如果我有少于5个div,关闭设备应该被禁用。如果我有5个以上的div,那么当一个div“关闭”时,我希望下一个“隐藏”div变为可见 如果需要,我可以将ID添加到每个DIV,如“foo1”、“foo2”等ID。类似的操作应该可以: $("#container .foo:gt(4)").hide(); $("#container").delegate("
如果需要,我可以将ID添加到每个DIV,如“foo1”、“foo2”等ID。类似的操作应该可以:
$("#container .foo:gt(4)").hide();
$("#container").delegate(".foo", "click", function() {
if(!$("#container .foo:hidden").length) return;
$(this).fadeOut('slow', function() {
$(this).siblings(":hidden:first").fadeIn()
.end().remove();
});
});
。这样做的目的是使用(基于0的)选择器隐藏所有过去的5。然后,我们使用的是效率(尽管a也可以)。如果没有更多的隐藏,就没有效果。如果有更多的隐藏,则淡出我们单击的一个,在淡出结束时显示一个,以及我们完全淡出的一个。如果有一千个结果,您将执行该函数一千次。将:gt(4)与直接隐藏()结合使用如何?它的方式更快,但我们没有,我们有最多10作为OP声明-我们有能力修改基于每个索引的代码。。。不管怎样,尼克·克雷弗的解决方案很好。我只想指出,使用
slideDown
和slideUp
在您使用fadeOut/In
的地方使用slideout/In
会产生一个很好的效果,而且不那么急促。听从建议,更漂亮!还是丑陋的css。foo+.foo+.foo+.foo+.foo+.foo{display:none;}前面有5个以上的.foo同级将被隐藏。如果你移除了它。它没有fadeIn支持though@DoXicK-我想你忽略了.end()
调用,我要删除的不是兄弟姐妹中的淡出,而是$(此)
:)
$('#container div.foo').click(function() {
if ($(this).index() >= 5) ...; //etc
}
$('.foo').each(
function(index,element) {
if(index>5) $(element).hide();
}
)
$("#container .foo:gt(4)").hide();
$("#container").delegate(".foo", "click", function() {
if(!$("#container .foo:hidden").length) return;
$(this).fadeOut('slow', function() {
$(this).siblings(":hidden:first").fadeIn()
.end().remove();
});
});
$('#container div.foo').click(function() {
if ($(this).index() >= 5) ...; //etc
}