Uncaught TypeError: object is not a function

Gestart doorKingunit7 reacties93 weergaven

8 berichten · pagina 1 van 1

Kingunit

Lid · Topicstarter

Berichten
10.409
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hoi,

Heb op dit moment een javascript probleempje. Dit is de code:

$(document).ready(function() {
    /*
        createNewTodo("_OPDRACHT_", "_PRIO_", "_DONE_");

        _OPDRACHT_  =   wat er gedaan met worden.
        _PRIO_      =   prioriteit 1-5 (1 is hoogste, 5 is laagste)
        _DONE_      =   uitgevoerd 1-2 (1 is nee, 2 is ja
    */

    function todo(opdracht,prio,done) {
      this.opdracht = opdracht;
      this.prio = prio;
      this.done = done;
    }

    function createNewTodo(opdracht,prio,done) {
      var createdTodo = new todo(opdracht,prio,done);
      if ( localStorage.todoCount == undefined ) {
          localStorage.setItem(todoCount, 0) 
      }
      var todoSize = parseInt(localStorage.todoCount) + 1;
      commitToStorage(todoSize,createdTodo);
    }

    function addList(){
        var val = $(#name).val();
        var tjap = createNewTodo(val,"1","1");
    }

    function commitToStorage(objectCount,newObject) {

      var item = + objectCount;
      localStorage.setItem(todoCount, objectCount);

      localStorage.setItem(item, JSON.stringify(newObject));
    }

    var todoCount = localStorage.getItem(todoCount);  
    for (i=1;i<=todoCount;i++)
      {
        var number = parseInt(i) + 1;
        var todo = jQuery.parseJSON(localStorage.getItem(+ i));
        createMarkup(todo);
      } 

    function createMarkup(todo) {
      $(ul#items).append(
        "<li>" + 
          todo.opdracht + " " +
        "</li>"
      );
    }

    $(#add-btn).click(addList);

});


Op dit moment werkt het half. Wanneer ik wat tekst in mijn input stop en op de button add-btn klik dan wordt er bij localstorage een array toegevoegd en een count. Wanneer ik daarna weer opnieuw wat in de input stop en klik op de button komt er weer een nieuwe array en de count gaat 1 omhoog. Dat is eigenlijk wat er ook moet gebeuren.

Nu komt het probleem. Wanneer ik dus mijn pagina herlaad (F5) en dan opnieuw iets wil toevoegen krijg ik een error: Uncaught TypeError: object is not a function. Wanneer ik localstorage leeg haal kan ik weer items toevoegen maar dan na een refresh lukt het niet meer. Iemand een oplossing? Ik kom er maar niet uit.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
welke line krijg je de error?
0
Kingunit

Lid · Topicstarter

Berichten
10.409
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Xjessex schreef:
welke line krijg je de error?
Lijn 17.

var createdTodo = new todo(opdracht,prio,done);
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Heb je ook een live demo?
Ik vind je code best wel onoverzichtelijk (slecht eerlijk gezegd)
Je gebruikt todo voor een variabele naam én voor een functie naam?
En:
var item = + objectCount;

Wat wil je daarmee bereiken?

toevoeging op 29 november 2014, 00:42:21:
Heb je code even bekeken.
Verander het volgende:

function todo(opdracht,prio,done) {


in

function todo2(opdracht,prio,done) {


op lijn 10 en

var createdTodo = new todo(opdracht,prio,done);


in

var createdTodo = new todo2(opdracht,prio,done);


op lijn 17
0
Kingunit

Lid · Topicstarter

Berichten
10.409
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Het probleem is opgelost. Wou hem op een soort JSFiddle gooien maar die had een goede console. Kreeg gelijk de verkeerde dingen mee en de oplossing.

Oplossing:

var todo bestond al. (wat Jesse al zei, dubbel)
Was een ; ergens vergeten.
Xjessex schreef:
Heb je ook een live demo?
Ik vind je code best wel onoverzichtelijk (slecht eerlijk gezegd)
Je gebruikt todo voor een variabele naam én voor een functie naam?
En:
var item = + objectCount;

Wat wil je daarmee bereiken?
Zie indd een var die niks doet. Bedankt voor je input en tijd! smile
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
De naam is nog steeds niet goed, maar de error is waarschijnlijk opgelost.

toevoeging op 29 november 2014, 00:43:28:
Op lijn 42 maak je todo namelijk nog eens aan

var todo = jQuery.parseJSON(localStorage.getItem(+ i));
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Kingunit schreef:
Het probleem is opgelost. Wou hem op een soort JSFiddle gooien maar die had een goede console. Kreeg gelijk de verkeerde dingen mee en de oplossing.

Oplossing:

var todo bestond al. (wat Jesse al zei, dubbel)
Was een ; ergens vergeten.
Xjessex schreef:
Heb je ook een live demo?
Ik vind je code best wel onoverzichtelijk (slecht eerlijk gezegd)
Je gebruikt todo voor een variabele naam én voor een functie naam?
En:
var item = + objectCount;

Wat wil je daarmee bereiken?
Zie indd een var die niks doet. Bedankt voor je input en tijd! smile
Welke soort JSFiddle?
0
Kingunit

Lid · Topicstarter

Berichten
10.409
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
JSBin
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren