Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2014, 19:33
Интересующийся
Отправить личное сообщение для Vladimir93 Посмотреть профиль Найти все сообщения от Vladimir93
 
Регистрация: 08.11.2014
Сообщений: 27

Помогите разобраться в коде! Реализовать светофор
Доброго времени суток. С javascript не работал, учу Java. Появилась задача написать простой светофор с тремя кнопками(для переключения цветов в ручном режиме) Внизу код, такой вопрос. Когда в функции описываю изменение стиля одного дива- все работает, если я в функции изменяю стили всем дивам - изменяеться только первый...тобиж не работает. Так же в теге скрипт разные реализации методов, пытался решить проблему Что не так? Подскажите что почитать, чтобы разобраться..
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<head lang="en">
    <meta charset="UTF-8">
    <title>Светофор</title>
    <link rel="stylesheet" type="text/css" href="Stylesheet.css">
    <script type="text/javascript">
        function red1(){
            var red = document.getElementById('closedred');
            style = red.style;
            style.setProperty()
            var yellow = document.getElementById('closedyellow');
            yellow.className = "yellow";
        }
        function red() {
            $("#closedred"). document.getElementById('closedred').style.background = 'red';
            $("#closedyellow"). document.getElementById('closedyellow').style.background = 'yellow';
            document.getElementById('closedred').style.background = 'red';
            function newfunction (){
                document.getElementById('closedyellow').style.background = 'yellow';
            }
        }
        function yellow() {
            document.getElementById('closedyellow').style.background = 'yellow';
        }
        function green() {
            document.getElementById('closedred').style.background = 'red';
        }

//        var color;
//        function ChangeBackground(color, id)
//        {
//            document.getElementById("id").style.backgroundColor=color;
//        }
//
//        function wechsel(color) {
//
//            if (color == 1) {
//                document.getElementById('container').style.backgroundColor = '#ffffff';
//            }
//
//            if (color == 2) {
//                document.getElementById('container').style.backgroundColor = '#0000ff';
//            }
//
//            if (color == 3) {
//                document.getElementById('container').style.backgroundColor = '#ff0000';
//            }
//        }
//
    function changeDiv (id){
        if (id  == document.getElementById('closedred')){
            document.getElementById('closered').style.background = 'red';
            document.getElementById('closedyellow').style.backgroundColor = 'closedyellow';
            document.getElementById('closedgreen').style.backgroundColor = 'closedgreen';
        }
        if (id == document.getElementById('closedyellow')){
            document.getElementById('closedred').style.backgroundColor = 'closedred';
            document.getElementById('closedyellow').style.backgroundColor = 'yellow';
            document.getElementById('closedgreen').style.backgroundColor = 'closedgreen';
        }
        if (id == document.getElementById('closedgreen')){
            document.getElementById('closered').style.backgroundColor = 'closedred';
            document.getElementById('closedyellow').style.backgroundColor = 'closedyellow';
            document.getElementById('closedgreen').style.backgroundColor = 'green';
        }
    }
    </script>
</head>
<body>

<div align="center" id="closedred">

</div>
<div align="center" id="closedyellow">

</div>
<div align="center" id="closedgreen">

</div>
<input type=button value="Запуск" onclick="ready()">
<table border=1 align=center><tr><td><div class=text3><form>
    <input type=button value="Красный" onClick="changeDiv('closedred')">
    <input type=button value="Желтый" onClick="document.getElementById('closedyellow').style.backgroundColor = 'yellow'">
    <input type=button value="Зеленый" onClick="document.getElementById('closedgreen').style.backgroundColor = 'green'">
</form></div></td></table>


</body>
</html>

#red {
     align-content: center;
     width: 100px;
     height: 100px;
     background: #FF0000;
     -moz-border-radius: 50px;
     -webkit-border-radius: 50px;
     border-radius: 50px;
     border: solid;
 }
#green {
    align-content: center;
    width: 100px;
    height: 100px;
    background:  #00FF00;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
    border-radius: 50px;
    border: solid;
}
#yellow {
    align-content: center;
    width: 100px;
    height: 100px;
    background:  #FFFF00;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
    border-radius: 50px;
    border: solid;
}
#closedred {
    align-content: center;
    width: 100px;
    height: 100px;
    background: #FFE4E1;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
    border-radius: 50px;
    border: solid;
}
#closedgreen {
    align-content: center;
    width: 100px;
    height: 100px;
    background:  #F0FFF0;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
    border-radius: 50px;
    border: solid;
}
#closedyellow {
    align-content: center;
    width: 100px;
    height: 100px;
    background:  #FFFFE0;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
    border-radius: 50px;
    border: solid;
}

Последний раз редактировалось Vladimir93, 08.11.2014 в 19:38.
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2014, 19:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Vladimir93,
кавычки зачем в 33 строке?
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2014, 19:46
Интересующийся
Отправить личное сообщение для Vladimir93 Посмотреть профиль Найти все сообщения от Vladimir93
 
Регистрация: 08.11.2014
Сообщений: 27

ыы трудно ответить, все делал по примерам в интернете..
Ответить с цитированием
  #4 (permalink)  
Старый 08.11.2014, 19:47
Интересующийся
Отправить личное сообщение для Vladimir93 Посмотреть профиль Найти все сообщения от Vladimir93
 
Регистрация: 08.11.2014
Сообщений: 27

обратите, пожалуйста винмание на метод changeDiv, почему он не работает?
Ответить с цитированием
  #5 (permalink)  
Старый 08.11.2014, 20:00
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Омг, первый новичок за последние несколько месяцев, который не спутал JS с Java.

Vladimir93,
Цитата:
обратите, пожалуйста винмание на метод changeDiv, почему он не работает?
Потому, что он сравнивает объект со строкой.
Строки сравниваются по значению, а объекты по ссылке.
Ответить с цитированием
  #6 (permalink)  
Старый 08.11.2014, 20:06
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

function changeDiv (id){
        if (id  == 'closedred'){
            document.getElementById('closered').style.background = 'red';
            document.getElementById('closedyellow').style.backgroundColor = 'closedyellow';
            document.getElementById('closedgreen').style.backgroundColor = 'closedgreen';
        }
        if (id == 'closedyellow'){
            document.getElementById('closedred').style.backgroundColor = 'closedred';
            document.getElementById('closedyellow').style.backgroundColor = 'yellow';
            document.getElementById('closedgreen').style.backgroundColor = 'closedgreen';
        }
        if (id == 'closedgreen'){
            document.getElementById('closered').style.backgroundColor = 'closedred';
            document.getElementById('closedyellow').style.backgroundColor = 'closedyellow';
            document.getElementById('closedgreen').style.backgroundColor = 'green';
        }
    }


А так работает?
Ответить с цитированием
  #7 (permalink)  
Старый 08.11.2014, 20:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Vladimir93,

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<head lang="en">
    <meta charset="UTF-8">
    <title>Светофор</title>
  <style type="text/css">
body > div{
    width: 100px;
    height: 100px;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
    border-radius: 50px;
    border: 2px solid  rgb(51, 0, 0);
 }
body.green div:nth-child(3){
   opacity: 1 ;
}

body.yellow div:nth-child(2){
   opacity: 1
}
body.red div:nth-child(1){
   opacity: 1
}

body div:nth-child(3){
   opacity: 0.2;  background: green;
}

body div:nth-child(2){
   opacity: 0.2 ; background: yellow;
}
body div:nth-child(1){
   opacity: 0.2  ; background: red;
}
  </style>
    <script type="text/javascript">
    function changeDiv (name){
           document.body.className = name

    }
    </script>
</head>
<body class="green">

<div align="center" id="closedred">

</div>
<div align="center" id="closedyellow">

</div>
<div align="center" id="closedgreen">

</div>

<table border=1 align=center><tr><td><form>
    <input type=button value="Красный" onClick="changeDiv('red')">
    <input type=button value="Желтый" onClick="changeDiv('yellow')">
    <input type=button value="Зеленый" onClick="changeDiv('green')">
</form></td></tr></table>


</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 08.11.2014, 21:44
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Задача произвольного доступа ставит народ в угол на горох. Между тем логика простая как три копейки: стек. Вся ваша блеать память так устроена, иначе бы х там был произвольный доступ. В случае когда глубина стека равна 1, задача из простой как три копейки вырождается в баян:

Код:
if last_item 
   hide/off/shrink/move/down/etc last_item
show/on/grow/up/etc current_item 
last_item = current_item
Применительно к любому количеству в любом контексте.

Да-да, я про "проффесоров", один все методы в кубе перечислил, другой в порядок привел все формы. Копипаста рулит.

Последний раз редактировалось kostyanet, 08.11.2014 в 21:47.
Ответить с цитированием
  #9 (permalink)  
Старый 08.11.2014, 22:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

kostyanet, доступный перевод вашего сообщения

Цитата:
в переменной old всегда находится элемент открытый в прошлый раз - перед открытием нового элемента -- элемент в old скрывается -- в него записывается новый и новый old открывается - так понятнее?
javascript tabs
Скрыть/показать элементы в зависимости от значения select ов (нескольких)
Ответить с цитированием
  #10 (permalink)  
Старый 08.11.2014, 22:44
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

old блеать, how old? А тот который сейчас небось new? Вот такие переводчики и снабжают нацию технической документацией. Ну и почему у вас БД светофора тогда оказалась в стилях?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться в коде Nailya jQuery 4 07.10.2013 09:49
Помогите разобраться, как реализовать данный метод? Sannn Общие вопросы Javascript 4 11.09.2013 17:55
Помогите разобраться в коде select.find('#edit_my_location').hide().prev().sho w(); vuler Общие вопросы Javascript 0 21.02.2012 14:01
Помогите разобраться с onclick saint447 Общие вопросы Javascript 4 22.09.2010 09:33
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 10:44