Partage
  • Partager sur Facebook
  • Partager sur Twitter

[jQuery] Code non exécuté

Sujet résolu
    21 octobre 2011 à 16:37:34

    Bonjour à tous,

    J'aurais besoin d'un peu d'aide pour comprendre pourquoi une partie de mon code n'est pas exécuté avec jQuery. Je débute encore avec l'utilisation de la lib donc je suis preneur pour tous vos conseils.

    Ajax.js
    $(document).ready(function(){
    
    	
    	// On affiche la liste des taches
    	$.post("ajax/traitement.php",{action:"lister"},function(tab){
    		for(var i = 0, lg = tab.length; i < lg; i++){
    			switch(tab[i].priorite){
    				case "1":
    					var prio = "info";
    					break;
    				case "2":
    					var prio = "warning";
    					break;
    				case "3":
    					var prio = "error";
    					break;
    			}
    			var div = '<div class="alert-message block-message '+prio+'"><b>'+tab[i].nom+'</b><ul class="pb"><li><b>Date début</b> - '+tab[i].date_debut+'</li><li><b>Problème</b> - '+tab[i].probleme+'</li></div>';
    			$(".taches").append(div);
    		}
    	},"json");
    	
    	
    	// Envoie du formulaire
    	$("#form").submit(function(){
    		
    		var isOk = true;
    		var titre = $("#titre").val();
    		var prio = $("#prio").val();
    		var desc = $("#desc").val();
    		
    		if(titre == ""){
    			$("#titre").addClass("alert");
    			isOk = false;
    		}
    		
    		if(desc == ""){
    			$("#desc").addClass("alert");
    			isOk = false;
    		}
    
    		if(isOk){
    			$.post("ajax/traitement.php",{action:"add",nom:titre,priorite:prio,description:desc},function(data){
    				if(data == "ok"){
    					$(".displayMsg").html("<div class=\"alert-message block-message success\"><b>Nouvelle tâche ajoutée.</b><div>");
    					$.post("ajax/traitement.php",{action:"refresh"},function(tab){
    						if(tab.err == "ok"){
    							switch(tab.data.priorite){
    								case "1":
    									var prio = "info";
    									break;
    								case "2":
    									var prio = "warning";
    									break;
    								case "3":
    									var prio = "error";
    									break;
    							}
    							var div = '<div class="alert-message block-message '+prio+'"><b>'+tab.data.nom+'</b><ul class="pb"><li><b>Date début</b> - '+tab.data.date_debut+'</li><li><b>Problème</b> - '+tab.data.probleme+'</li></div>';
    							$(".taches:first").before(div);
    						}
    					},"json");
    				}
    			},"json");
    		$("#form").reset();
    		}
    		return false;
    	});
    	
    	
    	// On cache le commentaire du problème
    	$(".pb").hide();
    	
    	
    	// Hover sur les taches
    	$(".alert-message").hover(function(){
    		$(this).append($("<span id=\"finir\"><b>x</a></b></span>"));
    	},function(){
    		$(this).find("span:last").remove();
    	});
    	
    	
    	// Affiche de la description
    	$(".alert-message").click(function(){
    		$(this).find(".pb").toggle(300);
    	});
    	
    	
    });
    

    Mon problème vient du fait que le code suivant n'es pas exécuté.
    $(".pb").hide();
    


    Pourtant que je lance cette fonction dans la console de chrome elle fonctionne.

    J'ai aussi remarqué que lorsque je rafraîchis la page avec l'inspecteur ouvert j'ai une exception qui est levée à ce niveau là:
    matches.call( document.documentElement, "[test!='']:sizzle" );
    


    Si vous avez des pistes, je suis preneur.

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      21 octobre 2011 à 21:56:43

      Ta ligne 72 ne devrait-elle pas être entre les lignes 20 et 21 ?
      • Partager sur Facebook
      • Partager sur Twitter
        22 octobre 2011 à 18:51:45

        Exact, j'avais pas fais gaffe que les fonctions continuaient de s’exécuter sans attendre le retour du callback. Bref, le comportement normal d'ajax en somme :p
        • Partager sur Facebook
        • Partager sur Twitter

        [jQuery] Code non exécuté

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown