IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Attendre la réponse d'une fonction


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Par défaut Attendre la réponse d'une fonction
    Bonjour à toutes et tous !

    Je construis mon script à l'aide de jQuery mais ma question concerne aussi le javascript de manière globale.

    J'ai créé une fonction de confirmation personnalisée qui peut être appelée n’importe où en aval dans mon script.
    Le but est d'éviter de se répéter au maximum en réduisant l'utilisation de la fonction à celle de "confirm()".

    Le problème c'est que je n'arrive pas à bloquer l'execution des scripts comme le fait "confirm()".
    Donc voilà où j'en suis :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
                function showConfirm(mess, response) {
     
    			window.MyConfirm = {lastConfirm: null , confirmTime: 0};
     
    			var confirmWait = setInterval(function(){
    				console.log(window.MyConfirm.lastConfirm);
    				if(typeof(window.MyConfirm.lastConfirm) == 'boolean') {
    					clearInterval(confirmWait);
    					$(document).delay(3000);
    					return window.MyConfirm.lastConfirm;
    				}
    			}, 2000);
     
    			if(typeof(response) == 'boolean') {
     
    				window.MyConfirm.lastConfirm = response;
     
    			} else {
     
    				if(window.Browser == 'oldie') { return confirm(mess); } else {
     
    					var content = '<div>' + mess + '<input type="button" onclick="showConfirm(null, true);" value="OK" /><input type="button" onclick="return false;" value="Annuler" /></div>';
     
    					var notification = new NotificationFx({
    						message : content,
    						layout : 'growl',
    						effect : 'scale',
    						type : 'warning',
    						ttl: 300000
    					});
    					notification.show();
     
     
    				}
    			}
     
    		}
     
                   var confirm = showConfirm('<p>Confirmation</p>');//Stoper tous les scripts ici temps que "showConfirm" n'a pas retourner un boolean
     
    		console.log(confirm);
    Comme vous pouvez le voir j'ai essayé de me dépatouiller avec des setInterval et cie mais je ne m'en sors pas...

    Qui aurait une bonne piste pour moi ??

    Merci d'avance

    Mickael

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Pour les cas simples, il faut utiliser un Object Callback, pour les cas plus complexes un Object Differed, voir : http://danielhagnoul.developpez.com/...ts/Objets.html.

    API jQuery : http://api.jquery.com/category/callbacks-object/ et http://api.jquery.com/category/deferred-object/

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/06/2009, 16h50
  2. [PHP 5.0] Attendre la fin d'une fonction pour en realiser une autre
    Par keaton7 dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2009, 16h06
  3. [Prototype] [AJAX] Récupérer la réponse / Lancer une fonction
    Par Shirraz dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 07/04/2009, 06h50
  4. Attendre la fin d'une fonction
    Par benjhe dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/12/2007, 14h44
  5. Attendre la réponse d'une boite de dialogue ??
    Par Ben_Le_Cool dans le forum Delphi
    Réponses: 16
    Dernier message: 15/12/2006, 20h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo