Rechercher : dans
Par :

[JQuery] ordre d'execution des action

Dernière réponse le 5 jun 2009 à 10:52:19 matdev, le 29 mai 2009 à 11:47:58 
 Signaler ce message aux modérateurs

Bonjour à tous,

j'utilise JQuery[ajax] pour gérer l'affichage de tableaux d'informations au parcours des champs d'un formulaire. Au focus, j'affiche le tableau, au blur, j'affiche une page vide.

$("input#Types_clients_id").focus(function(){
	jQuery.ajax({
		url:"/cdl/Fichier/infotypesclients",
		success:function(msg){
			$("div#aide").html(msg);
		}
	});
});
$("input#Types_clients_id").blur(function(){
	jQuery.ajax({
		url:"/cdl/Index/vide",
		success:function(msg){
			$("div#aide").html(msg);
		}
	});
});


Mon soucis est que lorsque que je passe d'un champ à un autre, j'ai (théoriquement) mon tableau du champ courant d'afficher, puis la page vide, puis le tableau du champ suivant.

Or, il arrive que cet ordre ne soit pas respecté et que j'ai mon tableau du champ courant d'afficher, puis le tableau du champ suivant, puis la page vide (donc pas le tableau souhaité d'afficher).

Est-il possible possible de gérer l'ordre d'execution des action JQuery[ajax]?

Meilleures réponses pour « [JQuery] ordre d'execution des action » dans :
Désactiver l'exécution de certains programmes au démarrage VoirDésactiver l'exécution de certains programmes au démarrage - Windows 98/Me/2000/XP/Vista Avec msconfig Avec WinPatrol Avec Startuplite Avec CCleaner Remarques Lorsque vous installez des logiciels, certains s'exécutent à chaque...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Prévention de l'Exécution des Données VoirParamétrer ou désactiver la Prévention d'Exécution des Données (PED) Depuis le SP2 de Windows XP (Vista inclus), une nouvelle gestion de la mémoire (mode No eXecute) a été ajoutée, elle permet aux processeurs Athlon 64 d'AMD de protéger le système...
Télécharger Move Action VoirSi vous possédez une webcam, utilisez-la intelligemment. En plus de l'utiliser uniquement pour vos conversations en live dans les clients de messagerie ou autres, lancez une application ou arrêter votre ordinateur grâce à elle. Move Action est une...
Exécuter une macro VoirExécuter une macro Excel et Calc proposent plusieurs façons d’exécuter une macro : en la sélectionnant dans une liste, dans la boîte de dialogue Macro ; par un raccourci clavier ; en l’attachant à un bouton de la barre d’outils ; ...
Exécution de requêtes avec JDBC VoirExécution d'une requête SQL Pour exécuter une requête SQL, il s'agit dans un premier temps de créer un objet Statement, pouvant être obtenu à partir de l'objet Connection. Un objet ResultSet permettra de récupérer les données en provenance de...

1

matdev, le 5 jun 2009 à 09:57:04

Je suis toujours sur mon petit problème avec jquery. J'ai une petite astuce mais qui à aussi son défaut donc si quelqu'un voit une solution je suis preneur.

Donc pour rappel:
quand je suis sur un champ de mon formulaire, un tableau de choix s'affiche et quand je clique sur un de ces choix la valeur est insérée dans le champ et le tableau reste visible. Lorsque je quitte le champ, le tableau disparé.

Voici mon code pour l'affichage des tableau et leur retrait

$("input#Types_clients_id").focus(function(){
	jQuery.ajax({
		url:"/cdl/Fichier/infotypesclients",		
                success:function(msg){
			$("div#aide").html(msg);
		}
	});
});
$("input#Types_clients_id").blur(function(){
	$(this).delay(1000,function(){
		$("div#aide").html("");
	});
});
$("input#Formes_juridiques_id").focus(function(){
	jQuery.ajax({
		url:"/cdl/Fichier/infoformesjuridiques",
		success:function(msg){
			$("div#aide").html(msg);
		}
	});
});
$("input#Formes_juridiques_id").blur(function(){
	$(this).delay(1000,function(){
		$("div#aide").html("");
	});
});


Voici mon code pour l'insertion des valeurs du tableau dans mes champs

var champ=null;
function setCaretToEnd (input) {
	setSelectionRange(input, input.value.length, input.value.length);
}
function champsur(obj){
	champ=obj;
}
function choisi(val){
	champ.value=val;
	champ.focus();
	setCaretToEnd(champ);
}


J'ai mis en place une temporisation car lorsque je clique sur un choix d'un tableau, je perd le focus et le tebleau disparaissé avant d'insérer le choix dans le champ.

La tempo me permet maintenant de bien insérer mon choix dans le champ mais lorsque je passe d'un champ à un autre mon nouveau tableau s'affiche puis disparait à cause de la tempo de fermeture du tableau précédannt.

Serait-il possible lorsque je me positionne sur un nouveau champ d'interrompre la temporisation et l'action de fermeture du blur du champ précédant ?

Répondre à matdev

2

 matdev, le 5 jun 2009 à 10:52:19

La réponse était sous mon nez, il suffisait de définir également une temporisation pour l'ouverture des tableaux légérement supérieur à celle des fermetures.

C'est peut être un peu lourd en code mais au moins je sai qu'elles action s'execute dans quel ordre.

Voici la source pour un champ


$("input#Types_clients_id").focus(function(){
	$(this).delay(125,function(){
		jQuery.ajax({
			url:"/cdl/Fichier/infotypesclients",
			success:function(msg){
				$("div#aide").html(msg);
			}
		});
	});
});
$("input#Types_clients_id").blur(function(){
	$(this).delay(100,function(){
		$("div#aide").html("");
	});
});

Répondre à matdev
Collection CommentÇaMarche.net