使用 Java 脚本按照用户将鼠标悬停在它们上面的顺序打印消失的悬停数字
Print the disappeared hovered numbers in the order that the user mouseover them using Java Script
我制作了这个网页,其中随机数字从 1 到 9 出现在正方形 div 中。
我需要的是:
当用户将鼠标悬停在任何数字上时,该数字将消失,最后当用户完成所有数字的悬停时,应出现一个警告,按照用户悬停的顺序显示所有数字。
这是我的尝试:
我只能让数字消失,但我怎样才能按照用户悬停的相同顺序在警报中打印它们:
document.getElementById("s1").addEventListener("mouseover", function(){
document.getElementById("s1").style.visibility = "hidden";})
document.getElementById("s2").addEventListener("mouseover", function(){
document.getElementById("s2").style.visibility = "hidden"; })
document.getElementById("s2").addEventListener("mouseover", function(){
document.getElementById("s2").style.visibility = "hidden"; })
document.getElementById("s3").addEventListener("mouseover", function(){
document.getElementById("s3").style.visibility = "hidden";})
document.getElementById("s4").addEventListener("mouseover", function(){
document.getElementById("s4").style.visibility = "hidden";})
document.getElementById("s5").addEventListener("mouseover", function(){
document.getElementById("s5").style.visibility = "hidden";})
document.getElementById("s6").addEventListener("mouseover", function(){
document.getElementById("s6").style.visibility = "hidden";})
document.getElementById("s7").addEventListener("mouseover", function(){
document.getElementById("s7").style.visibility = "hidden";})
document.getElementById("s8").addEventListener("mouseover", function(){
document.getElementById("s8").style.visibility = "hidden";})
document.getElementById("s9").addEventListener("mouseover", function(){
document.getElementById("s9").style.visibility = "hidden";})
function alertAfterHovering() {
alert(document.getElementById("s1").innerHTML+" "+document.getElementById("s2").innerHTML+"
"+document.getElementById("s3").innerHTML+" "+document.getElementById("s4").innerHTML+"
"+document.getElementById("s5").innerHTML+" "+document.getElementById("s6").innerHTML+"
"+document.getElementById("s7").innerHTML+" "+document.getElementById("s8").innerHTML+"
"+document.getElementById("s9").innerHTML)
}
创建一个数组来捕获用户悬停时的数字。然后使用该数组显示警报。
var numbers = [];
// repeat this for each element Or find a better way of targeting the elements so you don't have to hard code for each one
document.getElementById("s1").addEventListener("mouseover", function(){
var thisNumber = document.getElementById("s1").innerHTML;
// you need some way of making sure hovering over an invisible element does not add a duplicate to the array
if (!numbers.includes(thisNumber) {
numbers.push(thisNumber);
}
document.getElementById("s1").style.visibility = "hidden";
});
function alertAfterHovering() {
alert(numbers);
}
您可以使用 eventListener 和一些动态代码来完成:
var squares = document.getElementsByClassName("square");
for (square of squares) {
square.addEventListener("mouseenter", addNumber);
}
var total = [];
function addNumber(e) {
if(e.target.textContent) {
total.push(e.target.textContent);
e.target.textContent = "";
if(total.length === squares.length) {
alert(total);
}
}
}
.square {
width: 29%;
height: 50px;
background: #00ffff;
margin: 2%;
display: flex;
align-items: center;
justify-content: center;
}
.box {
display: flex;
flex: 0 1 33%;
flex-wrap: wrap;
}
<div class="box">
<div class="square">1</div>
<div class="square">2</div>
<div class="square">3</div>
<div class="square">4</div>
<div class="square">5</div>
<div class="square">6</div>
<div class="square">7</div>
<div class="square">8</div>
<div class="square">9</div>
</div>
我制作了这个网页,其中随机数字从 1 到 9 出现在正方形 div 中。
我需要的是: 当用户将鼠标悬停在任何数字上时,该数字将消失,最后当用户完成所有数字的悬停时,应出现一个警告,按照用户悬停的顺序显示所有数字。
这是我的尝试: 我只能让数字消失,但我怎样才能按照用户悬停的相同顺序在警报中打印它们:
document.getElementById("s1").addEventListener("mouseover", function(){
document.getElementById("s1").style.visibility = "hidden";})
document.getElementById("s2").addEventListener("mouseover", function(){
document.getElementById("s2").style.visibility = "hidden"; })
document.getElementById("s2").addEventListener("mouseover", function(){
document.getElementById("s2").style.visibility = "hidden"; })
document.getElementById("s3").addEventListener("mouseover", function(){
document.getElementById("s3").style.visibility = "hidden";})
document.getElementById("s4").addEventListener("mouseover", function(){
document.getElementById("s4").style.visibility = "hidden";})
document.getElementById("s5").addEventListener("mouseover", function(){
document.getElementById("s5").style.visibility = "hidden";})
document.getElementById("s6").addEventListener("mouseover", function(){
document.getElementById("s6").style.visibility = "hidden";})
document.getElementById("s7").addEventListener("mouseover", function(){
document.getElementById("s7").style.visibility = "hidden";})
document.getElementById("s8").addEventListener("mouseover", function(){
document.getElementById("s8").style.visibility = "hidden";})
document.getElementById("s9").addEventListener("mouseover", function(){
document.getElementById("s9").style.visibility = "hidden";})
function alertAfterHovering() {
alert(document.getElementById("s1").innerHTML+" "+document.getElementById("s2").innerHTML+"
"+document.getElementById("s3").innerHTML+" "+document.getElementById("s4").innerHTML+"
"+document.getElementById("s5").innerHTML+" "+document.getElementById("s6").innerHTML+"
"+document.getElementById("s7").innerHTML+" "+document.getElementById("s8").innerHTML+"
"+document.getElementById("s9").innerHTML)
}
创建一个数组来捕获用户悬停时的数字。然后使用该数组显示警报。
var numbers = [];
// repeat this for each element Or find a better way of targeting the elements so you don't have to hard code for each one
document.getElementById("s1").addEventListener("mouseover", function(){
var thisNumber = document.getElementById("s1").innerHTML;
// you need some way of making sure hovering over an invisible element does not add a duplicate to the array
if (!numbers.includes(thisNumber) {
numbers.push(thisNumber);
}
document.getElementById("s1").style.visibility = "hidden";
});
function alertAfterHovering() {
alert(numbers);
}
您可以使用 eventListener 和一些动态代码来完成:
var squares = document.getElementsByClassName("square");
for (square of squares) {
square.addEventListener("mouseenter", addNumber);
}
var total = [];
function addNumber(e) {
if(e.target.textContent) {
total.push(e.target.textContent);
e.target.textContent = "";
if(total.length === squares.length) {
alert(total);
}
}
}
.square {
width: 29%;
height: 50px;
background: #00ffff;
margin: 2%;
display: flex;
align-items: center;
justify-content: center;
}
.box {
display: flex;
flex: 0 1 33%;
flex-wrap: wrap;
}
<div class="box">
<div class="square">1</div>
<div class="square">2</div>
<div class="square">3</div>
<div class="square">4</div>
<div class="square">5</div>
<div class="square">6</div>
<div class="square">7</div>
<div class="square">8</div>
<div class="square">9</div>
</div>