switch значений после 3-его клика
Добрый день. Существют блоки,при каждом 3-ем клике цифры 1ого и 2ого клика меняются местами.
получилось разве что менять местами первые 2 цифры с помошью свитча элементов массива.
[HTML]<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{
display:flex;
flex-wrap:wrap;
justify-content: center;
width: 50%;
}
div{
width: 100px;
height: 100px;
border:1px solid;
font-size: 24px
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
<script type="text/javascript" src="js/script.js"></script>
</html>
[/html]
var elem=document.querySelectorAll('div');
for (var i=0;i<elem.length;i++){
elem[i].addEventListener('click',F)
}
var a=[];
function F(){
if(this.innerHTML!=""){
return false
}
var x=parseInt(Math.random(1)*9);
a.push(x);
for(var i=0;i<a.length;i++){
var tiv=a[i];
this.innerHTML=tiv;
if(a[0]&&a[1]&&a[2]){
var x=a[0];
var y=a[1];
a[1]=x;
a[0]=y;
}
}
console.log(a)
}
Код не закончен, дошел до switch элементов массива. Как я пытался решить задачу. Массив берет максимум 3 числа и меняет местами первые 2 значения и обнуляется, потом опять 3 и обнуляется.При этом старые значения не должны исчезать. Не знаю на сколько это практично и легко,но буду признателен за помошь. |
Да и цикл перестает работаеть если 1ый или 3ий элемент цифра "0"
|
Vardges,
:-? |
Аналогичное лицо когда искал в коде условную конструкцию switch
|
Ох извените видимо я не правильно сконструировал свои мысли, простите чайника. цифры просто должны меняться местами.
Пример var x=2; var y=4; var z=x; x=y; y=z; |
Vardges,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{
display:flex;
flex-wrap:wrap;
justify-content: center;
width: 50%;
}
div{
width: 100px;
height: 100px;
border:1px solid;
font-size: 24px
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
<script>
var elem=document.querySelectorAll('div');
for (var i=0;i<elem.length;i++){
elem[i].addEventListener('click',F)
}
var a=[];
function F(){
if(this.innerHTML!=""){
return false
}
var x=parseInt(Math.random(1)*9);
this.innerHTML = x;
a.unshift(this);
if(a.length == 3) {
var t = a[2].innerHTML;
a[2].innerHTML = a[1].innerHTML;
a[1].innerHTML = t;
a.length = 2;
}
console.log(a)
}
</script>
</html>
|
a.unshift(this); а что делает эта команда?unshift это добавить в массив, а (this)? |
Цитата:
всегда можете посмотреть, поместив рядом такой код console.log(this); |
Я стесняюсь даже спросить что такое дом дерево.
|
Цитата:
https://learn.javascript.ru/array#м...-shift-unshift |
| Часовой пояс GMT +3, время: 09:12. |