addEventListner не работает с объектом заводской функции

#javascript #addeventlistener #factory

Вопрос:

Я создаю заводскую функцию для возврата объекта кнопки, в consol.log я получил правильный результат, но при применении addEventListner он не работает

           const tabButton = function(name)
        {
            const button = document.createElement("button")             
            button.innerText = name
            button.classList.add("btn")
            return {button}
        }
        
        const displayWebsite = function()
        {
            const btn = tabButton("name").button
            console.log(btn)                          //<button class="btn">name</button>
            btn.addEventListener("click",()=>{
                console.log("debug")                  // not working
            })
        }
 

Комментарии:

1. Вы добавили новую кнопку к какому-то узлу DOM?

2. Где вы добавляете кнопку в DOM и нажимаете на нее?

Ответ №1:

Этот код работает:

 function tabButton(name) {
    const button = document.createElement("button");             
    button.innerText = name;
    button.classList.add("btn");
    document.getElementById("theButtons").appendChild(button);
    return button;
}
        
function displayWebsite() {
    const btn = tabButton("name");
    console.log(btn);
    btn.addEventListener("click",() => {
        console.log("debug")
    })
}

displayWebsite() 
 <div id="theButtons"></div> 

Комментарии:

1. Пожалуйста, примите этот ответ (нажмите на галочку), если это ответ на ваш вопрос. Если у вас есть еще какие-либо сомнения, не стесняйтесь комментировать :).