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, время: 17:13. |