7
respostas

Não acontece no meu código

Olá boa tarde, eu entendi o objeto da IIFE, porém quando estava tentando acessar minhas funções no console da aplicação elas não apareciam e davam esse erro:

VM21166:1 Uncaught ReferenceError: capitalize is not defined
    at <anonymous>:1:1

Não sei pq kkk pq não estava utilizando o IIFE, alguém sabe pq?

7 respostas

Fala Victória, tudo bem?

Poderia por favor, mandar o seu código para darmos uma olhada?

Lembre-se de colocar o código entre 3 crases, ou clicando em inserir código no topo do seu editor.

Beleza vou colar o código, agora não to fazendo o Ceep não, to fazendo uma to do list paralela pra aprender, segue o código:

moment.locale("pt-br");

window.onload = function () {
  insertDate();
};

const date = document.querySelector(".box__header__date");
const message = document.querySelector(".warning_message");
const dateToday = moment(new Date()).format("L");
const formatDate = capitalize(dateToday).join(" ");
const addTask = document.querySelector(".btnAdd");
const inputTask = document.querySelector("[taskInput]");

function capitalize(stringCode) {
  let myString = stringCode.split(" ").map((word) => {
    return word.charAt(0).toUpperCase() + word.substring(1);
  });

  return myString;
}

function insertDate() {
  date.innerText = formatDate;
}

const newTask = () => {
  let inputValue = inputTask.value;
  const taskBox = document.querySelector("[task-box]");

  const task = `
  <div class="box__main__card">
    <div class="box__main__card__info">
      <input type="checkbox" name="done" id="done" class="done" />
      <p>${inputValue}</p>
    </div>
    <div class="box__main__card__icon">
      <i class="material-icons" id="edit">edit</i>
      <i class="material-icons" id="close">close</i>
    </div>
  </div> 
  `;

  if (inputValue) {
    taskBox.innerHTML += task;
    message.classList.remove("show");
  } else if (inputValue === "") {
    message.classList.add("show");
  }

  let card = {
    id: getId(),
    cardData: {
      task: inputValue,
    },
  };

  console.log(card);
  inputValue = "";
  return card;
};

addTask.addEventListener("click", () => {
  let card = newTask();
  inputTask.value = "";
  saveLocalStorage(card);
  taskFinished();
  taskDelete();
});

const taskFinished = () => {
  const checkBox = document.querySelectorAll(".done");

  checkBox.forEach((check) => {
    check.addEventListener("click", (event) => {
      const btnFinished = event.target;
      const taskDone = btnFinished.nextElementSibling;
      taskDone.classList.toggle("checked");
    });
  });
};

const taskDelete = () => {
  const btnDelete = document.querySelectorAll("#close");

  btnDelete.forEach((btn) => {
    btn.addEventListener("click", () => {
      const taskCard = btn.parentElement.parentElement;
      taskCard.remove();
    });
  });
};

const getId = () => {
  return localStorage.length;
};

const saveLocalStorage = (object) => {
  localStorage.setItem(object.id, JSON.stringify(object));
};

Como vocês estava acessando as funções no console? Você linkou elas no seu HTML?

Sim! Eu linkei o script no html tudo direitinho, e tá funcionando tudo certo no browser, tá tudo renderizando kkkk mas fui fazer o exemplo da iife e não consegui ai fiquei em dúvida

Poderia dizer qual comando está utilizando?

Nenhum comando, eu só utilizei o nome da função no console do browser pra vê se a função aparecia, a função não aparece e mostra esse erro que eu postei acima.