首页 > 解决方案 > jQuery Form 不会隐藏并且函数返回 undefined

问题描述

我的一个按钮有问题。它不能正常工作。
当我单击“添加运行”按钮,然后单击“主页”按钮时,几乎没有任何效果。动态创建的表单不隐藏,搜索输入不显示,函数返回未定义。

$("#home").on("click", function () {
  $("#search").show();
  $("#addForm").hide();
  $("#noPrevious").hide();
  complete()
  console.log(complete())
});

但另一方面,有些事情是有效的,它们隐藏或显示。例如,刷新后,当我单击“我的所有运行”时,它会显示文本,单击“主页”按钮后会隐藏,最重要的是,会显示搜索输入字段。我不明白这一点。有人知道出了什么问题吗?

提前致谢。

这是 CodePen 和 GitHub。问题出在 .js 文件的顶部。 https://codepen.io/ovy1448/pen/gZrKOX
https://github.com/ovy1448/MyRun/blob/master/js/main.js

标签: javascriptjqueryfunctionbutton

解决方案


您的问题是您没有正确初始化您的值。例如,在bookmarks您的代码假定localStorage具有该键的值的情况下。但是,情况不一定如此。您需要为bookmarks. 助手function在这里可能很有用:

function getBookmarks() {
    var bookmarks = localStorage.getItem("bookmarks");
    if (!bookmarks) bookmarks = [];
    return bookmarks;
}

然后替换代码中所有出现的localStorage.getItem("bookmarks")to getBookMarks(),除了上面函数中的那个。还要注意其他初始化。

编辑

如果你想在函数内部解析 JSON,你可以这样做:

function getBookmarks() {
    var bookmarks = localStorage.getItem("bookmarks");
    if (!bookmarks) return [];
    return JSON.parse(bookmarks);
}

推荐阅读