Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Что я делаю не так? (https://javascript.ru/forum/project/71220-chto-ya-delayu-ne-tak.html)

Martin 02.11.2017 20:22

Что я делаю не так?
 
Только начал изучать JavaScript.

Вот небольшая html страница. Есть три флажка и параграф. И я хочу, чтобы при нажатии на какую нибудь из них менялся цвет текса параграфа.

<body>

<p><input type="checkbox" id="first"> Первый стиль </p>
<p><input type="checkbox" id="second"> Второй стиль </p>
<p><input type="checkbox" id="third"> Третий стиль </p>

<p id="paragraph">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nostrum ducimus consectetur voluptatem numquam, hic possimus quidem ratione. Laudantium, reprehenderit, cumque.</p>

//==============CSS==========
.firstStyle {
color: red;
}

.secondStyle {
color: blue;
}

.thirdStyle {
color: brown;
}

//============JavaScript==========
<script>
function newFunc() {
if (document.getElementById('first').checked)
{document.getElementById('paragraph').className = "firstStyle";}
}
</script>



</body>

Rasy 02.11.2017 20:37

Martin,
Нужно зарегистрировать клик и вызывать функцию при клике.
document.getElementById('first').onclick = function() {
  newFunc();
}

Martin 02.11.2017 20:49

Цитата:

Сообщение от Rasy (Сообщение 468986)
Martin,
Нужно зарегистрировать клик и вызывать функцию при клике.
document.getElementById('first').onclick = function() {
  newFunc();
}

Да, я сделал так, спасибо!
Но я хотел вызывать функции именно тогда, когда установлен флажок, то есть checked. Потому что используя onclick бывает так, что перезагружаешь страницу, флажок не стоит, но стиль применился.

Rasy 02.11.2017 20:56

Цитата:

Сообщение от Martin
Но я хотел вызывать функции именно тогда, когда установлен флажок, то есть checked.

Ничего страшного что функция будет вызываться, так и должно быть. Стиль применится только, если флажок отмечен. После перезагрузки неприменится.

Martin 02.11.2017 20:59

Цитата:

Сообщение от Rasy (Сообщение 468988)
Ничего страшного что функция будет вызываться, так и должно быть. Стиль применится только, если флажок отмечен. После перезагрузки неприменится.

Ну вот я отмечаю флажок, применяется стиль. Но если я перезагружу страницу, то флажок остается отмеченным, но стиль не применяется. Теперь, если я убираю флажок, стиль начинает применяться.

Rasy 02.11.2017 21:03

Цитата:

Сообщение от Martin
то флажок остается отмеченным

Значит событие кэшируется. Тогда надо вызывать функцию при загрузке страницы.
function newFunc() {
if (document.getElementById('first').checked) 
{document.getElementById('paragraph').className = "firstStyle";}
}
newFunc();

Martin 02.11.2017 21:09

Цитата:

Сообщение от Rasy (Сообщение 468990)
Значит событие кэшируется. Тогда надо вызывать функцию при загрузке страницы.
function newFunc() {
if (document.getElementById('first').checked) 
{document.getElementById('paragraph').className = "firstStyle";}
}
newFunc();

О, вот! Спасибо бро, получилось:thanks:


Часовой пояс GMT +3, время: 04:31.