Форма jQuery не будет скрыта, а функция вернет неопределенный - PullRequest
0 голосов
/ 15 декабря 2018

У меня проблема с одной кнопкой.Это не работает должным образом.
Когда я нажимаю кнопку «Добавить запуск», а затем кнопку «Домой», почти ничего не работает.Динамически создаваемая форма не скрывается, поисковый ввод не отображается, а функция return не определена.

$("#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

1 Ответ

0 голосов
/ 15 декабря 2018

Ваша проблема в том, что вы неправильно инициализируете свои значения.Например, в случае bookmarks ваш код предполагает, что localStorage имеет значение с этим ключом.Однако это не обязательно так.Вам нужно иметь значение по умолчанию для bookmarks.Здесь может быть полезен помощник function:

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

, а затем замените все вхождения от localStorage.getItem("bookmarks") до getBookMarks() в вашем коде, кроме одного в функции выше.Обратите внимание и на другие инициализации.

РЕДАКТИРОВАТЬ

Если вы хотите проанализировать JSON внутри функции, вы можете сделать это так:

function getBookmarks() {
    var bookmarks = localStorage.getItem("bookmarks");
    if (!bookmarks) return [];
    return JSON.parse(bookmarks);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...