如何删除不直接调用函数的事件监听器?

How to remove event listener that does not directly call a function?

我在成功 AJAX 请求后在我的 JS 中设置了以下事件侦听器:

var pageButtonsParentElement = document.getElementById("page-buttons");
pageButtonsParentElement.addEventListener('click',
    event => {
        let selectedPageButton = event.target;
        if (selectedPageButton.classList.contains("page-item")){
            updatePageButtonFormatting(selectedPageButton);
            let selectedPageNumber = selectedPageButton.getAttribute("data-page-number");
            inputObject = createInputObject(selectedPageNumber);
            // new CallClass(inputObject); 
        }
})

根据 Mozilla 文档,我可以调用 removeEventListener() 方法并传入要删除的元素和函数 (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener)。当我的函数是“事件 => ...”时,我不确定如何执行此操作

需要对您要删除的函数的引用。

如果不保留对它的引用,则无法删除它。

保留对它的引用。

const listener = event => { ... };
foo.addEventListener("click", listener);
foo.removeEventListener("click", listener);