Функция javascript onclick выполняется при загрузке - PullRequest
0 голосов
/ 18 мая 2019

Я написал кусок кода.При нажатии на кнопку должна быть вызвана соответствующая функция.Хотя логика работает для funcB и funcD, то есть они вызываются при нажатии FieldB и FieldD.Функция A вызывается по какой-то причине при загрузке страницы. Может кто-нибудь объяснить, что я здесь не так делаю? Рад поделиться дополнительным кодом, если это не имеет смысла.

function funcA(array){alert("Invoked");}

function init() {
    loadData();
    document.getElementById("FieldA").onclick = funcA(array1);
    document.getElementById("FieldB").onclick = funcB;
    document.getElementById("FieldC").onclick = funcA(array2);
    document.getElementById("FieldD").onclick = funcD;
}

window.onload = init;

Ответы [ 2 ]

4 голосов
/ 18 мая 2019

Когда вы вызываете функцию, она возвращает значение.funcA(array1) не относится к переменной функции, но это будет значение, возвращаемое функцией funcA, в данном случае undefined.Если вы хотите передать некоторые аргументы, используйте функцию-оболочку.

document.getElementById("FieldA").onclick =() => funcA(array1);

Лучше использовать addEventListener

document.getElementById("FieldA").addEventListener('click',e => funcA(array1))
0 голосов
/ 18 мая 2019

вы выполняете funcA при загрузке, вместо этого вы можете добавить функцию-оболочку к funcA, например:

document.getElementById("FieldA").onclick = function() {
  funcA(array1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...