gpt4 book ai didi

javascript - 如何使这个功能更清晰?

转载 作者:行者123 更新时间:2023-12-02 20:53:50 24 4
gpt4 key购买 nike

我不想每次向 HTML 添加新图像时都向 JS 代码添加新行。但我不知道该怎么做。

$(document).ready(function() {
$('.btn').click(function() {
var bid = $(this).attr('id');
if(bid=="img1" || bid == "img2" || bid == "img3"){
document.getElementById("img1").style.display = "none";
document.getElementById("img2").style.display = "none";
document.getElementById("img3").style.display = "none";
} else {
document.getElementById("img4").style.display = "none";
document.getElementById("img5").style.display = "none";
}
document.getElementById(bid).style.display = "block";
});
});

CSS

.textures {
background: url("images/room.png") center / cover no-repeat;
position: static;
height: 600px;
width: 800px;
}
div>img {
display: none;
position: absolute;
}
[type=radio] {
position: absolute;
opacity: 0;
width: 0;
height: 0;
}
[type=radio] + img {
cursor: pointer;
height: 60px;
width: 80px
}
[type=radio]:checked + img {
outline: 2px solid #000;
}

HTML。在这里您可以看到,如果我单击类别中输入的半径,它将显示 Material 中的图像之一。

<!--Room materials-->
<div class="textures">
<div class="wall">
<img id="img1" src="images/wall/blue.png" />
<img id="img2" src="images/wall/brick.png" />
</div>

<div class="floor">
<img id="img3" src="images/floor/cedro.png" />
<img id="img4" src="images/floor/cipres.png" />
</div>
</div>

<!--Categories-->
<h5>Walls</h5>
<label>
<input type="radio" class="btn" id="img1" name="test" value="small" />
<img src="images/thumbnail/wall/blue.png"/>
</label>
<label>
<input type="radio" class="btn" id="img2" name="test" value="small" />
<img src="images/thumbnail/wall/brick.png"/>
</label>

<h5>Floors</h5>
<label>
<input type="radio" class="btn" id="img3" name="test" value="small" />
<img src="images/thumbnail/floor/cedro.png"/>
</label>
<label>
<input type="radio" class="btn" id="img4" name="test" value="small" />
<img src="images/thumbnail/floor/cipres.png"/>
</label>

示例 here .

this这确实是我想要实现的目标。

最佳答案

首先,单个文档中存在重复的 ID 是无效的 HTML。要将数据放入 HTML 中指示与另一个元素的连接,您可以使用 data 属性。提取数据属性,隐藏所有图像,然后在选择器中使用数据属性:

<input type="radio" class="btn" data-image="img4" name="test" value="small" />
^^^^^^^^^^^^^^^^^
$('.btn').on('change', function() {
const id = $(this).data('image');
$('.textures img').hide();
$('#' + id).show();
});

关于javascript - 如何使这个功能更清晰?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61538449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com