Функция «OnClick» не запускается при первом клике, требуется второй клик - PullRequest
0 голосов
/ 13 февраля 2019

Итак, у меня есть пара элементов, у которых есть функция onClick, известная как timeline1 ().Тем не менее, скрипт не запускается при первом нажатии div, но работает нормально после дополнительного щелчка.Ниже приведен HTML-код:

<div class="Section_Timeline_Bullet">
            <div class="Section_Timeline_Bullet_Connector"></div>
            <img src="images/RightArrow.png" id="RightArrow1" onclick="timeline1()">
            <div class="Section_Timeline_Bullet_Info" id="Info1" onclick="timeline1()">12/02/2019</div>
        </div>

, и это соответствующая функция Javascript, которая должна запускаться с первого клика:

function timeline1() {
var arrow1 = document.getElementById('RightArrow1');
var info1 = document.getElementById('Info1');

if (info1.style.height == "5vh") {
    arrow1.classList.add("Section_Timeline_Rotated_Image_Up");
    arrow1.style.transition = "all 0.5s ease";
    arrow1.style.left = "-0.65vw";
    info1.style.top = "-42vh";
    info1.style.height = "20vh";
    info1.style.transition = "all 0.5s ease";
} else {
    arrow1.classList.remove("Section_Timeline_Rotated_Image_Up");
    arrow1.style.transition = "0";
    arrow1.style.left = "-0.5vw";
    info1.style.height = "5vh";
    info1.style.top = "-27vh";
    info1.style.transition = "0";
}

}

Единственноето, что делает arrow1.classList.add("Section_Timeline_Rotated_Image_Up);, - это вращение изображения, которое также не запускается при первом щелчке элемента div.Любая помощь в том, почему функция не запускается при первом щелчке, а при втором щелчке, будет принята с благодарностью.

TL; DR : щелчок по элементу не запускает его onClick в первый раз, но повторный щелчок запускает его нормально ... Справка D:

1 Ответ

0 голосов
/ 13 февраля 2019

Ваш скрипт действительно запускается с первого раза.Проблема в том, что ваш элемент info1 не имеет height из 5vh по по умолчанию , поэтому функция попадает в состояние else при первом запуске.Чтобы исправить это, либо установите info1.style.height = "5vh" перед первым вызовом функции, либо установите желаемое поведение «первый щелчок» в условном выражении else.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...