Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Почему второй обработчик срабатывает сразу при загрузке страницы, а не при клике, как (https://javascript.ru/forum/events/67302-pochemu-vtorojj-obrabotchik-srabatyvaet-srazu-pri-zagruzke-stranicy-ne-pri-klike-kak.html)

LeeO 09.02.2017 15:15

Почему второй обработчик срабатывает сразу при загрузке страницы, а не при клике, как
 
Почему второй обработчик срабатывает сразу при загрузке страницы, а не при клике, как первый? Что нужно сделать, чтобы он срабатывал при клилку? Спасибо.

window.onload=function() {

    var database = firebase.database();
    var btn1 = document.getElementById("AddBtn");


    btn1.addEventListener("click",
        function () {
            alert("Натиснули на кнопку");
        });

    btn1.addEventListener("click",
        writeUserData("Petro", "Kovach", 8)
    );

};

function writeUserData(FirstName, SecondName, IdUser) {
    firebase.database().ref('User/').child('user' + IdUser).set({
        firstname: FirstName,
        secondname: SecondName
    });
}

ksa 09.02.2017 15:34

Цитата:

Сообщение от LeeO
Почему второй обработчик срабатывает сразу при загрузке страницы

Так ты же его там вызываешь сам
Цитата:

Сообщение от LeeO
btn1.addEventListener("click",
        writeUserData("Petro", "Kovach", 8)
    );

Сделай так...

btn1.addEventListener("click", function(){
        writeUserData("Petro", "Kovach", 8)
    });

Alexandroppolus 09.02.2017 15:37

ещё вариант

btn1.addEventListener("click", writeUserData.bind(null, "Petro", "Kovach", 8));


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