Кнопка Onclick выполняет функцию при загрузке - PullRequest
2 голосов
/ 12 июня 2019

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

Я попробовал Изменить тег <% на <%= и <%-, а также сделать его функцией стрелки: <% () => Delt(this.id);%>.

<%function Delt() { Array.pop(); }%>
<button onclick="<%Delt(this.id);%>">Delete</button>

1 Ответ

0 голосов
/ 12 июня 2019

Вы запутываетесь здесь со стороны клиента и со стороны сервера, что бы ни лежало в тегах ejs, выполняется на сервере до того, как ваша dom загрузится. Так что выполняются функции, определенные в тегах ejs, потому что они не на стороне клиента js. Попробуйте определить свою функцию в js на стороне клиента, а не в ejs, то же самое для вызова функции.

<%function Delt() { Array.pop(); }%> // function definition in ejs
<button onclick="<%Delt(this.id);%>">Delete</button> // function call in ejs

Таким образом, все вещи выполняются на сервере до того, как ваша dom загружается, вы просто делаете обычный вызов функции в ejs, он не видит ваш onclick coz, это часть вашего браузера.

...