我有一个无限的滚动图库,它使用这样的标记(通过CSS转换为水平显示):
<div>
<ul>
<li><img id="placeHolder" class="photo" .../></li>
</ul>
</div>
现在,我有一些jQuery用子弹(li)填充UL元素,子弹本身包含图像。
过去一定数量的图像后,应删除第一张图像。 这就是以下代码应该做的事情。
// Limit to max
if( $('.photo:visible').size() >= maxPhotos ){
$(".photo:first").parent().remove(); // Remove li also removes img
}
但是,它似乎也会在一段时间后删除UL。
关于如何避免这种情况的任何建议?
答案 0 :(得分:2)
var $photos = $('.photo:visible');
if( $photos.length >= maxPhotos ){
$photos.first().parent('li').remove();
}
.parent()
可以选择.photo
元素.length
代替.size()
答案 1 :(得分:1)
您可以在删除之前检查以确保它是<li>
标记。
// Limit to max
if( $('.photo:visible').size() >= maxPhotos && $(".photo:first").parent().tagName == 'li'){
$(".photo:first").parent().remove(); // Remove li also removes img
}
答案 2 :(得分:1)
试试这个
if( $('.photo:visible').size() >= maxPhotos ){
$(".photo:first").closest("li").remove(); // Remove li also removes img
}
答案 3 :(得分:1)
这将确保它是一个li标签
if( $('.photo:visible').size() >= maxPhotos ){
$(".photo:first").closest('li').remove(); // Remove li also removes img
}