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 :

Conditionner une fonction à une action


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Conditionner une fonction à une action
    Bonjour,

    Je viens d'intégrer un système qui me permet d'organiser les éléments de mon menu via drag and drop.
    Vous trouverez la source sur ce site : Nestable Menu

    Bien que cela fonctionne en l'état, je constat que dés l'ouverture de la page, le script de mise a jour s’exécute alors qu'aucune action n'a été faite.

    Comment faire pour déclencher la fonction "updateOutput" uniquement lorsqu'un changement a été effectué ?

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    sans voir ton code ....

    Attend je passe une annonce vite fait

    Developpez recherche voyants devin et autres extralucides
    Mission:
    Deviner les codes non postés afin de solutionner les posts des membres...
    Salaire: Bénévolat
    Là ! y'a plus qu'à attendre ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je pensais que le lien vers la source suffisant puisque que c'est la même chose.
    Ceci dit voici le code qui je l’espère vous permettra de m'aider.

    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
    $(document).ready(function()
    {
    	/* The output is ment to update the nestableMenu-output textarea
    	 * So this could probably be rewritten a bit to only run the menu_updatesort function onchange
    	*/
     
    	var updateOutput = function(e)
    	{
    		var list   = e.length ? e : $(e.target),
    		output = list.data('output');
    		if (window.JSON) {
    			output.val(window.JSON.stringify(list.nestable('serialize')));//, null, 2));
    			menu_updatesort(window.JSON.stringify(list.nestable('serialize')));
    		} else {
    			output.val('Attention : Le support JSON n\'est pas pris en charge.');
    		}
    	};
    	// Active Nestable
    	$('#nestableMenu').nestable().on('change', updateOutput);
    	// Sortie initiales des données sérialisées.
    	updateOutput($('#nestableMenu').data('output', $('#nestableMenu-output')));
    	$('#nestable-menu').on('click', function(e)
    	{
    		var target = $(e.target),
    		action = target.data('action');
    		if (action === 'expand-all') {
    			$('.dd').nestable('expandAll');
    		}
    		if (action === 'collapse-all') {
    			$('.dd').nestable('collapseAll');
    		}
    	});
    });
    Dernière modification par Bovino ; 04/04/2013 à 08h40.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    simple question de déroulement, tu es passé à coté de l'utilité de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$(document).ready(function()
    le ready se lance lorsque tous les éléments de la page sont instanciés
    et DANS ton ready je vois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Sortie initiales des données sérialisées.
    		updateOutput($('#nestableMenu').data('output', $('#nestableMenu-output')));
    il semblerait que cette ligne fasse la mise a jour ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Invité
    Invité(e)
    Par défaut
    en effet cela semble faire la mise à jour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Sortie initiales des données sérialisées.
    updateOutput($('#nestableMenu').data('output', $('#nestableMenu-output')));
    et ceci affiche dans une div le message provenant du fichier ou se trouve le script de mise à jour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#nestableMenu-output')
    Mais comment faire pour déclencher la mise a jour uniquement s'il y a modification.

    Dsl, mais je ne suis pas très a laisse avec le JS et Jquery.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    essaye juste de commenter la ligne ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. appliquer une fonction à une fonction
    Par stracoma dans le forum C++
    Réponses: 6
    Dernier message: 20/03/2015, 16h35
  2. passer en paramettre d'une fonction une fonction
    Par RoM3Ro dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/06/2006, 15h54
  3. [Fonctions] Une fonction ou deux ?
    Par Évariste Galois dans le forum C++
    Réponses: 10
    Dernier message: 24/08/2005, 09h22
  4. Réponses: 5
    Dernier message: 09/02/2005, 18h50
  5. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54

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