sendData() {
const btn = document.forms[0]['generate'];
...
btn.addEventListener('click', async () => {
await this.requestToServer(
{ url: url, date: [result[1], result[2]], transaction: result[3], newItem: result[4],
subNewItem: result[5], type: result[0]
}
);
...
window.location.href = "http://example.com/chart";
this.createChart(
this.data.date, this.data.sum, 'bla-bla-bla', this.data.type
);
});
}
createChart.addEventListener('click', async () => {
await this.requestToServer(
{ url: url, date: [result[1], result[2]], transaction: result[3], newItem: result[4],
subNewItem: result[5], type: result[0]
}
);
createChart
это кнопка. Здесь сомнений быть не может))this.createChart
выполнялся не дожидаясь выполнения колбека обработчика событий this
для вызова this.requestToServer
- это я понял, но слушатель мы прикручиваем не на клик по кнопке createChart
, а на методthis.createChart
- вот это мне не понятно class Modify {
connectToServer (id) {
функция передает данные на сервер и получает ответ
}
changeData() {
ее мы с вами обсуждали ранее
const destroyBtn = document.querySelector('button[name="remove"]');
const hidden = document.querySelectorAll('td[hidden]');
const checkbox = document.querySelectorAll('td > input');
for (let i = 0; i < checkbox.length; i++) {
checkbox[i].addEventListener('change', () => {
if (checkbox[i].checked) {
let id = hidden[i].innerHTML;
<b>старый код: </b>
destroyBtn.addEventListener( 'click', () => this.connectToServer (id) );
<b>новый код:</b>
function func () {
return this.connectToServer (id);
}
destroyBtn.addEventListener( 'click', func );
destroyBtn.removeAddEventListener( 'click', func );
}
}
Uncaught TypeError: this.requestToServer is not a functionНо, если я использую стары вариант со стрелочной функцией, то такой ошибки нет.
at HTMLButtonElement.func
Спасибо!
У меня есть окно, где пользователь выбирает временной интервал (начало, конец), выбирает еще несколько настроек для отрисовки графика и нажимая на кнопку
btn
, на которую я прикрутил обработчик, получает график. Мне показалось, что внедрить этот код вместе будет разумно)Буду изучать ваше решение. Еще раз спасибо.