jquery - Show some images on click using display
问题描述
Below is my jquery code. This eyes class contains some eye images which I want to be shown when a user clicks on it so I am using this display technique but its not working for me
eyesBorder.click(function(e){
for(let i = 0; i<eyesBorder.length; i++){
$(e.target).css({"display":"block"});
break;
}
})
The technique which is working for me is below but It takes a lot of lines that's why don't want to use it
var eyesBorder = $('.eyes');
eyesBorder.click(function(e) {
for (let i = 0; i < eyesBorder.length; i++) {
var er = $(eyesBorder).index(this);
console.log(er)
if (er == 0) {
eye2.css("display", "none")
eye3.css("display", "none")
eye4.css("display", "none")
eye5.css("display", "none")
eye1.css("display", "block")
} else if (er == 1) {
eye3.css("display", "none")
eye4.css("display", "none")
eye5.css("display", "none")
eye1.css("display", "none")
eye2.css("display", "block")
} else if (er == 2) {
eye2.css("display", "none")
eye4.css("display", "none")
eye5.css("display", "none")
eye1.css("display", "none")
eye3.css("display", "block")
} else if (er == 3) {
eye2.css("display", "none")
eye3.css("display", "none")
eye5.css("display", "none")
eye1.css("display", "none")
eye4.css("display", "block")
} else {
eye2.css("display", "none")
eye3.css("display", "none")
eye4.css("display", "none")
eye1.css("display", "none")
eye5.css("display", "block")
}
break;
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="eyesContainer">
<div class="eyesBorder"> <img class="eyes" src="/emojiMaker/eyes1.png"> </div>
<div class="eyesBorder"> <img class="eyes" src="/emojiMaker/eyes2.png"> </div>
<div class="eyesBorder"> <img class="eyes" src="/emojiMaker/eyes3.png"> </div>
</div>
解决方案
Almost. I do not have more time
$('.eyesBorder').on("click", function(e) {
const $tgt = $(e.target);
const $parent = $(this).closest(".container");
const $other = $parent.is("#eyesContainer") ? $("#emojiContainer") : $("#eyesContainer");
$other.find(".eyesBorder").eq($tgt.index()).show()
if ($parent.is("#eyesContainer")) {
$tgt.siblings().show();
}
$tgt.hide();
})
#eyesContainer {
float: left;
width: 300px;
border: 3px solid green;
min-width: 300px;
min-height: 400px;
text-align: center;
}
#emojiContainer {
float: right;
min-width: 300px;
min-height: 400px;
border: 3px solid red;
text-align: center;
}
.eyesBorder {
border: 2px solid black;
width: 20%;
text-align: center;
}
img {
display: none;
/* remove this when using pngs */
}
div.eyesBorder:nth-child(1) { background-color:red }
div.eyesBorder:nth-child(2) { background-color:yellow }
div.eyesBorder:nth-child(3) { background-color:green }
#emojiContainer .eyesBorder {
display:none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="eyesContainer" class="container">
<div class="eyesBorder"> <img class="eyes" src="/emojiMaker/eyes1.png"> </div>
<div class="eyesBorder"> <img class="eyes" src="/emojiMaker/eyes2.png"> </div>
<div class="eyesBorder"> <img class="eyes" src="/emojiMaker/eyes3.png"> </div>
</div>
<div id="emojiContainer" class="container">
<div class="eyesBorder"> <img class="eyes" src="/emojiMaker/eyes1.png"> </div>
<div class="eyesBorder"> <img class="eyes" src="/emojiMaker/eyes2.png"> </div>
<div class="eyesBorder"> <img class="eyes" src="/emojiMaker/eyes3.png"> </div>
</div>
推荐阅读
- sql - 从sql中的日期倒数
- sql - BigQuery 合并 - 如果未匹配则插入新行
- javascript - Netlify 没有检测到 GatsbyJS 表单
- google-app-engine - Google App Engine:运行 gradle appengineDeploy 时连接中断,现在应用程序将无法工作(包括 firebase 云消息传递)
- c++ - Float to 4 uint8_t and display
- javascript - 如何在函数节点内调用函数
- excel - 可以加快 VBA 替换循环还是使用其他方法?
- javascript - 如何通过id选择要显示的div?
- machine-learning - Research paper has Supervised and Unsupervised Learning definition
- javascript - 用于多行插入的嵌套数组正在使用 sequelize nodejs 进行字符串化