Javascript Как прекратить выполенение функции?

Есть код:

function buttonCreate(event){
var clickX = (event.layerX === undefined ? event.offsetX : event.layerX) + 1;

var clickY = (event.layerY === undefined ? event.offsetY : event.layerY) + 1;
var g = document.getElementById('main')
g.onclick= ()=> buttonSet(clickX,clickY)
console.log("Функция отработана")

buttonCreate() вызывается после единичного нажатия на соответствующую кнопку, после все остальные клики (по карте(id main)), вызывают buttonSet(clickX,clickY),почему ? Как сделать так, что бы buttonSet тоже вызывался единично?


Ответы (1 шт):

Автор решения: c_k_rim

Ответ на Ваш вопрос можно найти по ссылке: https://developer.mozilla.org/ru/docs/Web/API/EventTarget/removeEventListener

Вот небольшой пример:

//Наш DOM-элемент
const mainClickElement = document.getElementById('main');

//Функция, которая должна выполниться при событии click
const someListener = event => {
    
    //Здесь какой-то код

    //Удаляем слушателя события click у mainClickElement.
    mainClickElement.removeEventListener('click', someListener, false);
};

//Начинаем слушать событие click для элемента mainClickElement. И если оно произойдет
//то выполнить функцию somListener
mainClickElement.addEventListener('click', someListener, false);
→ Ссылка