jquery - 更改未来实例的 CSS
问题描述
我显示图像,默认情况下它们按两个连续排序(50% 宽度),我有一个 jQuery 选项可以连续显示 4 个。在您尝试加载更多图像(使用无限滚动)之前,它会按预期工作。
即使我通过单击 jQuery 按钮更改了 css,“下一个/未来的实例”将再次具有 50% 的宽度。如何确保未来的实例将具有更新的 CSS?
$('.sortbutton4').click(function()
{
$('.imagecontainer').css({"width": "24.5%", "margin": "0.25%"});
$('.sortbutton4').css({"display": "none"});
$('.sortbutton2').css({"display": "block"});
});
$('.sortbutton2').click(function()
{
$('.imagecontainer').css('width', '48.5%');
$('.imagecontainer:nth-child(odd)').css({"margin-left": "1%", "margin-right": "0.5%"});
$('.imagecontainer:nth-child(even)').css({"margin-left": "0.5%", "margin-right": "1%"});
$('.sortbutton2').css({"display": "none"});
$('.sortbutton4').css({"display": "block"});
});
解决方案
您可能应该使用 CSS 类。就像是:
._4-in-a-row .imagecontainer {
width: 24.5%;
margin: 0.25%;
}
.imagecontainer {
width: 48.5%;
}
等等...对于nth-child
选择器
然后只需更改包装图像容器的元素的类。
<div class='images'>
<div class="imagecontainer">
<!-- ..where your dynamically fetched/generated image appears.. -->
</div>
<div class="imagecontainer">
</div>
<div class="imagecontainer">
</div>
</div>
function toggleImageSize() {
var imageRow = document.querySelector('.images');
// toggle .4-in-a-row class
imageRow.classList.contains('_4-in-a-row') ?
imageRow.classList.remove('_4-in-a-row') : imageRow.classList.add('_4-in-a-row');
// the rest of your JS for toggling the button visibility
}
推荐阅读
- image - 用表达式给出时不显示外部图像
- c# - Unity2D 在我的角色移动时出现抖动和滞后问题
- python - 如何使用 Python tkinter 将数据从 excel 导入数据库?
- python - 将“[”和“]”与正则表达式一起使用时出现“列表索引超出范围”错误
- java - 我不知道如何在java中以模块化方式创建单元,具有基本统计数据的可玩角色
- javascript - 使用 .replace() 时在替换参数上调用方法
- javascript - 尝试使用随机定位加载多个元素
- mysql - 如何修复“无法连接到 MySQL。全新 MAMP 安装后调试 errno: 2002' 错误?
- python-3.x - 使用字典pythonic的自定义类
- javascript - 如何通过引用本地 json 文件从静态资源中获取图像名称?