2016-02-06 3 views
0

Fondamentalement, quand un utilisateur entre quelque chose dans le "Ajouter une tâche" et appuie sur le bouton Ajouter une tâche, les choses entrées sont affichées dans la liste des tâches, et lorsque l'utilisateur clique sur "Montrer la tâche suivante", prenez la dernière chose entrée dans le tableau de la liste des tâches et affichez-la dans la zone de texte "tâche suivante".JavaScript Pop/Shift problème

Mon code:

var taskList = []; 
var $ = function (id) { return document.getElementById(id); } 

var addTask = function() 
{ 
    var newTask = $("new_task").value; 
    taskList.push(newTask); 
    display(); 
} 
var display = function() 
{ 
    var outString = ""; 
    document.getElementById("new_task").value = ""; 
    for (var i in taskList) 
    { 
     outString += taskList[i] + "\n"; 
    } 
    $("task_list").value = outString; 
} 
var finalTask = function() 
{ 
    document.getElementById("new_task").value = ""; 
    document.getElementById("next_task").value = taskList; 
    var nextTask = $("task_list").value; 
    taskList.shift(nextTask); 
    display(); 

    if (nextTask == "") 
    { 
     alert("No tasks remaining"); 
    } 
} 
window.onload = function() 
{ 
    $("add_task").onclick = addTask; 
    $("show_next_task").onclick = finalTask; 
} 
+0

Ni 'pop' ni' shift' ne prend un argument; qu'est-ce que vous attendez de cela? – Mathletics

+0

J'ai compris les problèmes, mais j'ai oublié de mettre à jour mon message. C'est mis à jour maintenant. –

Répondre

0

On dirait que vous êtes juste d'appeler la méthode par le mauvais nom. Vous avez:

window.onload = function() 
{ 
    $("add_task").onclick = addTask; 
    $("show_next_task").onclick = nextTask; // <------------- 
} 

Mais vous avez nommé votre fonction nextTasks.

EDIT:

Vous avez également alors une erreur dans votre méthode nextTasks:

var nextTasks = function() 
{ 
    var nextTask = $("next_task").value; 
    taskList.shift(nextTasks); // <---------------- 
    display(); 
} 

la flèche, il semble que vous passez la fonction comme argument, et que vous vouliez dire probablement passer le var nextTask.

Vous pourriez probablement vous épargner beaucoup de maux de tête en donnant à vos variables et fonctions des noms qui sont plus faciles à différencier. Cela peut sembler fastidieux, mais ce genre d'erreur est assez commun.

+0

Cela a corrigé un problème, mais maintenant, au lieu de simplement les afficher, ils disparaissent tout simplement. –

+0

@Benyamin Voir mon édition, j'ai repéré une autre erreur possible. –

+0

@Benyamin Si cela a résolu le problème affiché, j'apprécierais que vous acceptiez ma réponse, sinon s'il y a autre chose que je peux faire, faites le moi savoir. –