дорогой друг, твоя проблема: divFunc () место
эта функция является локальной для specialFunction ()
и во второй раз, когда вы вызываете эту функцию, создайте новую. и новый объект функции не равен последнему!
попробуйте это:
let div1 = document.createElement("div");
div1.innerHTML = "div1";
document.body.appendChild(div1);
let div2 = document.createElement("div");
div2.innerHTML = "div2";
document.body.appendChild(div2);
specialFunction(div1, false);
div2.addEventListener("click", function () {
console.log("div2 clicked");
specialFunction(div1, true);
});
function divFunc() {
console.log("div1 clicked");
}
function specialFunction(div, remove) {
if (remove)
div.removeEventListener("click", divFunc);
else {
hnd = div.addEventListener("click", divFunc);
console.log(hnd)
}
}