在 jQuery 切片后重新追加列表项并删除
Re-append list items after jQuery slice and remove
我做了一个无序列表,随机化其列表项,其中我只想在正常屏幕尺寸上显示 5 个,在较小的屏幕尺寸上显示 3 个。
通过使用 jQuery slice() 函数,我根据窗口大小删除了其他列表项。
但是,在达到 <650px 窗口大小(它切片为 3 个项目)后,当返回到>650px 窗口大小时,我似乎无法重新附加已删除的列表项目。我尝试使用 detach() 函数,但到目前为止无法让它工作。
这是我的代码:
function showHide() {
var displayDefaultLarge = $("ul li").slice(5);
var displayDefaultSmall = $("ul li").slice(3);
var insertLarge = displayDefaultLarge;
if ($(window).width() < 650) {
insertLarge = displayDefaultSmall.detach();
} else {
insertLarge.appendTo("ul");
insertLarge.detach();
}
}
showHide();
$(window).resize(function() {
showHide();
});
可以在此处找到显示出了什么问题的 Jsfiddle:https://jsfiddle.net/ccmrfb4z/
提前谢谢。
一个
选项,而不是使用javascript是使用css媒体查询:
li {
display: inline-block;
}
/* standard - show 5 */
li:nth-child(n+6) {
display: none;
}
/* less than 650 - show 3 */
@media (max-width: 650px) {
li:nth-child(n+4) {
display: none;
}
}
<ul>
<li>
<a href="#">
<div class="item">
<img src="http://placehold.it/50x50">
</div>
<p>Name</p>
</a>
</li>
<li>
<a href="#">
<div class="item">
<img src="http://placehold.it/50x50">
</div>
<p>Name</p>
</a>
</li>
<li>
<a href="#">
<div class="item">
<img src="http://placehold.it/50x50">
</div>
<p>Name</p>
</a>
</li>
<li>
<a href="#">
<div class="item">
<img src="http://placehold.it/50x50">
</div>
<p>Name</p>
</a>
</li>
<li>
<a href="#">
<div class="item">
<img src="http://placehold.it/50x50">
</div>
<p>Name</p>
</a>
</li>
<li>
<a href="#">
<div class="item">
<img src="http://placehold.it/50x50">
</div>
<p>Name</p>
</a>
</li>
<li>
<a href="#">
<div class="item">
<img src="http://placehold.it/50x50">
</div>
<p>Name</p>
</a>
</li>
<li>
<a href="#">
<div class="item">
<img src="http://placehold.it/50x50">
</div>
<p>Name</p>
</a>
</li>
<li>
<a href="#">
<div class="item">
<img src="http://placehold.it/50x50">
</div>
<p>Name</p>
</a>
</li>
<li>
<a href="#">
<div class="item">
<img src="http://placehold.it/50x50">
</div>
<p>Name</p>
</a>
</li>
</ul>
尝试使用 :lt()
, :gt()
选择器 ; .show()
, .hide()
function showHide() {
if ($(window).width() < 650) {
$("ul li:gt(2)").hide();
} else {
$("ul li:lt(5)").show();
}
}
$("ul li").slice(5).remove();
showHide();
$(window).resize(function() {
showHide();
});
JSFIDDLE https://jsfiddle.net/ccmrfb4z/1/
相关文章:
- 将 json 数据追加到 HTML 列表框
- 从 html.append 追加的 html 下拉列表中获取返回值
- 将同一个元素追加到两个下拉列表中只会导致最后一个元素被追加
- 在文档就绪时追加DDL;不要让它在列表项上有CSS,而不让它们可排序
- jQuery:拖放到多个列表,不可追加或重新拖动
- jQuery追加x元素的列表
- 事件列表器不适用于追加的项目
- 如何将项目添加到选定的追加列表 jQuery
- 选项追加不添加值以选择下拉列表
- 对追加的列表项设置限制
- 选择菜单更改仅在第一个事件上追加对象列表
- 在 jQuery 切片后重新追加列表项并删除
- 使用追加网格库下拉的绑定列表
- 将对象追加到 JSON 列表
- 尝试将列表项追加到动态 id
- 将 XML 数据追加到列表视图 JQuery Mobile
- 如何动态重命名列表的追加项
- 追加列表切换(jQuery Mobile)未正确呈现
- 使用JQuery追加列表值
- 通过Ajax调用删除和追加列表后,拖放列表不工作