javascript - 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
解决方案
您的问题是您没有正确初始化您的值。例如,在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);
}
推荐阅读
- vba - 循环内的 VBA 偏移 - 永远运行
- google-analytics - AMP 自定义 GA 维度在 GTM 中不起作用
- c++ - 点和序列的 boost::geometry::within() 行为
- c# - .NET Oracle,Oracle.DataAccess 非托管错误
- mysql - MySQL - 在 VIEW 选择中添加“分组依据”规则
- python - 如何过滤或删除包含熊猫列表中值的行
- android - HERE SDK Prem - 如何获得压缩路由?
- java - 通过 SlackBuild 脚本在 Slackware 上安装 openjfx 时未指定 $JAVA_HOME 路径
- video - ffmpeg 在特定时间在 mp4 上覆盖 png
- javascript - 手风琴 ui.newHeader.index() 增加 2 而不是 1