1

J'espère que vous y répondrez!difficultés à utiliser l'expression de fonction

var myform = document.getElementById("myform"), 
saveBtn = document.getElementById("submit"); 
saveBtn.addEventListener("click", saveInfo); 

var saveInfo = function (e){ 
    e.preventDefault(); 
    var dateValue = document.getElementById("inputdeadline").value; 
    var todoValue = document.getElementById("textarea").value; 
    todoValue = todoValue.replace(/\n/g," "); 
    if (dateValue > 24 || dateValue <= 0) { 
     myform.reset(); 
     return false; 
    }; 
    if (!(todoValue)) { 
     myform.reset(); 
     return false; 
    }; 
    var todoObj = { 
     todoValue, 
     dateValue 
    }; 
    if (localStorage.getItem("localTodoItem") === null) { 
     var todoArray = []; 
     todoArray.push(todoObj); 
     todoArray.sort(function (a, b) { 
      return a.dateValue - b.dateValue; 
     }); 
     localStorage.setItem("localTodoItem", JSON.stringify(todoArray)); 
    } else { 
     var todoArray = JSON.parse(localStorage.getItem("localTodoItem")); 
     todoArray.push(todoObj); 
     todoArray.sort(function (a, b) { 
      return a.dateValue - b.dateValue; 
     }); 
     localStorage.setItem("localTodoItem", JSON.stringify(todoArray)); 
    }; 
    showTodoItems(); 
    myform.reset(); 
}; 

Ici quand iam en utilisant la déclaration de fonction pour cette fonction saveInfo il fait correctement toutes les fonctionnalités, mais quand iam en utilisant l'expression de la fonction, il suffit de recharger la page qui est il ne se passe rien. aidez-moi s'il vous plaît. si vous avez besoin de plus de précisions sur le code please visit github

Répondre

2

Ceci est dû au fait que les déclarations de fonction sont hoisted, alors que les expressions de fonction ne le sont pas. Vous utilisez saveInfo avant que l'expression soit exécutée, ce qui fonctionnerait pour une déclaration mais pas une expression.

Function declaration hoisting on MDN

+0

Ouais merci l'avez trouvé ce lien utile. – janaravi