Last active
October 28, 2015 10:31
-
-
Save lduboeuf/cfa28da97f91feaca260 to your computer and use it in GitHub Desktop.
exemple mini-todo app pure js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="ISO-8859-1"> | |
<title>Insert title here</title> | |
<script> | |
var todos = [ | |
{ "todo" : "todo 1"}, | |
{ "todo" : "todo 2"}, | |
{ "todo" : "todo 3"} | |
] | |
function initTodos(){ | |
//parcours du tableau json et création d'un li à chaque fois | |
for(var i=0;i<todos.length;i++){ | |
addTodo(todos[i].todo); | |
} | |
} | |
function deleteTodo_event(evt){ | |
//on recherche le noeud html à supprimer ( le parent de <a></a>) | |
var current_todo = evt.target.parentNode; | |
var todo_list = current_todo.parentNode; | |
todo_list.removeChild(current_todo); | |
} | |
function newtodo_event(){ | |
addTodo(document.getElementById("todo").value); | |
} | |
function addTodo(newtodo){ | |
//creation balise "li" | |
var todo_li = document.createElement("li"); | |
todo_li.innerHTML = newtodo; | |
//creation balise "a" | |
var todo_del = document.createElement("a"); | |
todo_del.innerHTML = " X"; | |
todo_del.style.cursor = "crosshair"; | |
todo_del.addEventListener('click', deleteTodo_event); | |
//on rajoute la balise a après le li ( <li><a...></a></li>) | |
todo_li.appendChild(todo_del); | |
//on rajoute le li à la todo list | |
document.getElementById("todos-list").appendChild(todo_li); | |
} | |
//fonction appelée après le chargement complet de la page (évènement load) | |
window.addEventListener("load", function(){ | |
//on charge la liste des todos prédéfinis | |
initTodos(); | |
//on définit le comportement sur le click du bouton | |
document.getElementById("btn-create-todo").addEventListener('click', newtodo_event); | |
//sur la touche "entrée" on ajoute le todo | |
window.addEventListener("keydown", function(e){ | |
console.log(e.keyCode); | |
if (e.keyCode==13){ // code 13 = touche entrée | |
newtodo_event(); | |
} | |
}, true); | |
}); | |
</script> | |
</head> | |
<body> | |
<div id="form"> | |
<input type="text" id="todo"/> | |
<input type="button" id="btn-create-todo" value="ok"/> | |
</div> | |
<ul id="todos-list"> | |
</ul> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
another js style: