首页 > 解决方案 > 为什么我在 addEventListener 中的函数只执行所写内容的一部分?

问题描述

下午好,

我真的希望有人能给我解释......我有一个按钮 addEventListener ,它在里面调用 2 个函数。它很好地执行了一个功能,但另一个功能看起来只执行了一部分。我可以看到它正确地添加到了 localStorage,但它并没有改变 innerHTML。如果我在 addEventListener 之外调用该函数,它可以完美地添加到 localStorage 并更改 innerHTML。以下是功能:

这个有效

function emptyEntriesBook(){
    titleBook.value = "";
    authorName.value = "";
    genre.value = "";
    textarea.value ="";
}

这个仅在 addEventListener 内部时添加到 localStorage,但是当我在 addEventListener 外部单独调用它时会完成所有操作

function clickAddCount(){
    let nbBooks = localStorage.getItem("books");
    
    if (nbBooks != null ){
        nbBooks = parseInt(nbBooks)
        document.getElementById("countClick").innerHTML = nbBooks;
        if (nbBooks ==1){
            document.getElementById("bookChange").innerHTML = " book"
        } else{
            document.getElementById("bookChange").innerHTML = " books";
        } 
    }else {
        nbBooks =0
        localStorage.setItem("books", 0)
        if (nbBooks == 0){
            document.getElementById("bookChange").innerHTML = " book"
        }
        document.getElementById("countClick").innerHTML = nbBooks;
    } 
    nbBooks++;  
    localStorage.setItem("books", nbBooks)
} 
function addFunctions(){
    clickAddCount();
    emptyEntriesBook();
}

addBook.addEventListener("click", addFunctions);

我正在尝试使用 Flask 和 Python 构建应用程序

如果你能解释我出了什么问题......以及我应该怎么做,那就太好了!谢谢

标签: javascript

解决方案


推荐阅读