11549 sujets

JavaScript, DOM et API Web HTML5

Bonsoir à tous,

J'aurais besoin de votre aide.

Voici un bout de code : (j'ai oublié de préciser que j'utilise l'effet sortable de jQuery UI et donc j'ai des li qui contiennent des informations, elles-mêmes enregistrés dans le localStorage. Donc après un drag'n'drop, il faut à nouveau les trier pour garder l'ordre)

// on se trouve dans une requête AJAX
stop: function(event, ui) {
			// On récupère le nouveau emplacement
			var idCurrent = ui.item.context.id;
			// On teste dans quel sens ce fait le drag'n'drop (vers le haut ou vers le bas)
			if(idStartForSortableFunction > idCurrent) {
				// On compte de combien de bloc li on le déplace
				var lenght = idStartForSortableFunction - idCurrent;
				var oldId = newId = idStartForSortableFunction;
				var dataMoveTmp;
				
				for( var i = 0 ; i < lenght ; i++ ) {
					//On prends le contenu précédent
					dataMoveTmp = localStorage.getItem('nom' + --oldId);
					// Et on le met à la place de l'ancien
					localStorage.setItem('nom' + ++newId, dataMoveTmp);
				}
			}


J'ai mis des console.log un peu partout et mes résultats sont (à priori) correct. Par contre rien ne se passe dans le localStorage. Pourtant, si après cette boucle je fais ceci :
(pour mettre les données du bloc que l'on déplace dans sa nouvelle position)

localStorage.setItem('CGP_TOOLS_Admin_' + idCurrent, dataTmpForSortableFunction);


C'est ok. Une idée ? Une meilleure compréhension du problème ? Parce que je ne vois pas.

Merci à vous.
Modifié par MagicCarpet (26 Jan 2013 - 09:25)
C'est bon, ça fonctionne, juste les variables qui n'étaient pas correctement incrémentés.
Modifié par MagicCarpet (27 Jan 2013 - 19:26)