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

Bibliothèques & Frameworks Discussion :

Réaliser une action à la suite d'un drop [Dojo]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2010
    Messages : 123
    Par défaut Réaliser une action à la suite d'un drop
    Voici problème .
    Je voudrais réaliser une action à la suite d'un drop dans une source maSource. Voici ce à quoi je suis arrivé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    maSource.onDrop = function(){
    dojo.style(dojo.byId("text2"),{background: 'red'});
    };
    Le problème est que l'action est réalisée, mais le drop ne s'effectue pas. Autrement dit, l'objet ne se dépose pas dans maSource mais reste dans la source où il était au début.

    Une proposition de solution(de la part de Daniel Gibot): faire plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dojo.subscribe("/dnd/drop", function(source, nodes, copy, target){
    //target.parent.id donne l'id du bloc qui réceptionne
    //source.parent.id donne l'id de celui qui envoi
    //nodes contient la ligne qui est déplacée
    });
    Si je souhaite réaliser l'action suivante lorsqu'on drop qlq chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dojo.style(dojo.byId("text"),{background: 'red'});
    Je ne vois pas bien comment insérer le code dans ce que tu m'as donné, Daniel. Pourrais-tu écrire le code pour cet exemple?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2010
    Messages : 123
    Par défaut
    Quand j'insère l'instruction directement dans la fonction, l'action se réalise pour n'importe quel drop.
    Je n'arrive pas à préciser que le drop doit être pris en compte seulement quand il est fait dans maSource

  3. #3
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Par défaut
    Si tu enleves ta fonction, est ce que le drop se fait ?
    Si ce n'est pas le cas, avant de trouver un moyen de modifier le style, il faudrait d'abord s'assurer que le drop fonctionne ^^

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2010
    Messages : 123
    Par défaut
    Quand j'enlève la fonction, le drop se fait.

    Quand je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    maSource.onDrop = function(){
    dojo.style(dojo.byId("text2"),{background: 'green'});
    };
    L'action se réalise quand j'essaye de faire un drop sur maSource mais le drop ne s'effectue pas(au lâcher, l'objet réapparaît là où il était au départ).

    Quand je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dojo.subscribe("/dnd/drop", function(source, nodes, copy, target){
    target = colonne2;
    dojo.style(dojo.byId("text2"),{background: 'green'});
    });
    Quelque que soit l'endroit où je drop un objet, l'action se réalise, l'objet aterrit au bon endroit, mais l'action se réalise même quand le drop est fait dans une autre source que maSource

    J'espère avoir été suffisamment clair...

  5. #5
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Par défaut
    Ok.

    Donc de ce que je t'ai dit, "target.parent.id" affiche l'id du conteneur qui reçoit.
    Donc si tu fais un contrôle dans le "dojo.subscribe" en vérifiant si l'id est "maSource" tu devrais être en mesure de savoir quand c'est lui et donc modifier le fond.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2010
    Messages : 123
    Par défaut
    J'ai eu un petit bug qui m'a un peu retardé , pffff

    Donc tu proposes un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dojo.subscribe("/dnd/drop", function(source, nodes, copy, target){
    if(target.parent.id=="idSource"){
    dojo.style(dojo.byId("text2"),{background: 'green'});
    }
    });
    Ce qu'il y a là ne marche pas, et je ne vois pas trop comment faire autrement le "contrôle" dont tu parles.

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

Discussions similaires

  1. Exécuter une action à la suite
    Par Phoenix0007 dans le forum Android
    Réponses: 3
    Dernier message: 17/12/2010, 18h06
  2. Réaliser une action avec un intervalle de temps
    Par Ladgalen dans le forum PyQt
    Réponses: 5
    Dernier message: 25/11/2010, 16h51
  3. Réalise une action à chaque destruction d'une instance d'une classe
    Par zlaptop dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 09/07/2010, 11h23
  4. Réaliser une action après une combinaison de touche
    Par Coussati dans le forum Débuter
    Réponses: 4
    Dernier message: 08/09/2009, 09h11
  5. Réaliser une action sur le serveur à une heure/date précise
    Par grenoult dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 22/02/2008, 15h50

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