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 :

Evénement onclick sur un objet drag'n'dropable [Dojo]


Sujet :

Bibliothèques & Frameworks

  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 Evénement onclick sur un objet drag'n'dropable
    J'ai des éléments avec lesquels je fais du dnd, et bizarrement, je n'arrive pas à relier ces éléments à des événements onclick ou onmouseover.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    maSource.forInItems(function(item,id,map){
    	dojo.connect(item, "onclick", maFonction);
     
    });
    La fonction maFonction sert tout simplement à réaliser un alert, et je l'ai connecté avec succès à un événement onclick sur un élément figé.
    Le problème vient donc d'après moi de l'expression dojo.connect. Pourtant, je ne vois pas ce qui pourrait clocher.
    J'ai aussi essayé en affectant un id a tous mes éléments et en faisant un dojo.connect(dojo.byId(),etc), mais sans succès non plus.
    Est-ce que quelqu'un a une idée?

  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
    Pour la connexion à partir de l'id de l'élément, je viens de trouver un truc assez étrange.
    J'ai essayé un truc tout simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dojo.style(dojo.byId("monId"),{opacity:'0.2'});
    et le code plante.
    Autrement dit, la requête d'un élément par son id fait planter le code.

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Quand tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    maSource.forInItems(function(item,id,map){
    	dojo.connect(item, "onclick", maFonction);
     });
    as tu regardé ce que vaut item ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    maSource.forInItems(function(item,id,map){
    	console.log(item);
     });
    Les choses devraient s'éclaircir.

    ERE

  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
    Comment fonctionne console.log? Il affiche des choses dans la console d'Eclipse?
    Parce que quand je mets j'ai l'impression que rien ne se passe (à moins que je ne regarde pas au bon endroit^^).
    Par contre, quand je mets il m'affiche [object Object]

    Remarque:
    Voici comment sont définis mes éléments drag'n'dropables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var vehic = dojo.create('div',innerHTML:numParc,'id':numParc,'class':'blanc'});
    maSource.insertNodes(true, [vehic]);

  5. #5
    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
    Et bim, j'ai encore fini par trouver .
    Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var vehic = dojo.create('div',{innerHTML:numParc,'id':numParc,'class':'blanc'});
    dojo.connect(vehic, "onmouseover", pat);
    plutôt que de connecter l'élément après qu'il ait été inséré dans le dojo.dnd.Source.
    Si tout de même quelqu'un avait l'explication de cette subtilité, ce serait bien qu'il nous en fasse profiter ^^

  6. #6
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Re,

    Désolé mais j'ai été pris toute la journée...
    console.log: si tu travailles avec Firefox et Firebug alors les sortie ont lieu dans la console de Firebug. Note qu'il en va de même pour Chrome et Safari. Pour IE du peux utiliser Firebug Lite , mais normalement cela doit fonctionner nativement.

    Si tout de même quelqu'un avait l'explication de cette subtilité, ce serait bien qu'il nous en fasse profiter ^^
    Je vais essayer: quand tu utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    maSource.forInItems(function(item,id,map){
    	dojo.connect(item, "onclick", maFonction);
     });
    alors item n'est pas un noeud du DOM mais un objet Dojo dédié au DnD. D'où ton problème sur le connect. L'écriture serait plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    maSource.forInItems(function(item,id,map){
    	dojo.connect(dojo.byId(id), "onclick", maFonction);
     });
    Voilà.

    ERE

  7. #7
    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
    Je viens de tester ce que tu proposes, et ça marche

  8. #8
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Re,

    Je viens de tester ce que tu proposes, et ça marche
    Cool !

    Ces drag and drop ne sont pas évidents à gérer...

    ERE

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

Discussions similaires

  1. Evènement OnClick sur élément HTML en TWebBrowser
    Par KlausGunther dans le forum API, COM et SDKs
    Réponses: 19
    Dernier message: 22/11/2014, 19h01
  2. [POO] Faire afficher un objet dés Onclick sur un lien
    Par bilou95 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 10/10/2007, 08h56
  3. [Dojo] Evénement onclick sur un contentPane
    Par hakim_asm dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 30/07/2007, 17h29
  4. Evènement OnClick sur calendrier
    Par psykoleouf dans le forum VBA Access
    Réponses: 2
    Dernier message: 31/05/2007, 16h43
  5. [VB.NET] Drag and Drop d'un fichier sur un objet Panel
    Par Mü dans le forum Windows Forms
    Réponses: 4
    Dernier message: 07/11/2005, 12h30

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