@andrey_chirkin

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

Добрый день! У меня такая проблема, мне необходимо передать аргумент в обработчик события. Но затем при другом событии нужно нужно этот обработчик удалить. Не могу понять, как это сделать. Пример:

const but1 = useRef(null)
    const but2 = useRef(null)

    const handleButtonMove = () => (
        (event) => {
            console.log(event.target)
        }
    )


    const handleButtonClick = (elBut1) => (
        (event) => {
            elBut1.removeEventListener("mousemove", handleButtonMove())
        }
    )

    useEffect(() => {
        const elBut1 = but1.current
        const elBut2 = but2.current
        elBut1.addEventListener("mousemove", handleButtonMove())
        elBut2.addEventListener("click", handleButtonClick(elBut1))
    }, [])

return (
        <div className="operationTable">
            <button ref={but1}>Button 1</button>
            <button ref={but2}>Button 1</button>
        </div>
    )
  • Вопрос задан
  • 613 просмотров
Решения вопроса 1
insighter
@insighter
-First time? - Huh? (C#, React, JS)
const handleButtonClick = (elBut1) => (
        (event) => {
            elBut1.removeEventListener("mousemove", handleButtonMove())
        }
    )

const handleElBut1Click = handleButtonClick(elBut1);

elBut2.addEventListener("click", handleElBut1Click)
elBut2.removeEventListener("click", handleElBut1Click)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы