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

JavaScript Discussion :

Drag and Drop


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 40
    Par défaut Drag and Drop
    Bonjour, j'ai actuellement quelques problèmes sur mon développement d'application en JS.

    Je souhaite faire un tableau au seins de mon<span> lui meme compris dans <div id="corps"> .

    Ce tableau comprend 3*3 cellules, comportant des <td> ayant pour attribut "d=y"( que je reprend dans mes fonctions JS, pour l'identifier).

    Au seins de ces TD jai des <Div> acceuillant des "widgets" Je veux rendre ceux ci draggable entre eux.

    J'arrive pour le moment a bouger les TD entre eux, cependant je n'ai pas l'effet de "switch" entre ceux ci.

    Pour etre plus clair, mon Div que je deplace ne remplace pas le Div cibler, il s'ajoute a la suite ( insert.before j'ai tenter "replaceChild" mais sa ne fonctionne toujours pas).

    Je ne sais pas comment regler ce problème...

    Autre soucis, quand je prend un élèment draggable et que je le repositionne dans sont emplacement d'origine, cela me charge une page internet comportant l'ID de cette élèment dans l'url (ex: Je bouge BOX1 de son TD et le replace dedans, le navigateur charge alors =>http:// BOX1.com).
    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
    44
     
    function genDrag(typTag,le_frm){
    		if (typTag==''||typTag==undefined) typTag='td';
    		This_FRM=leID(le_frm);
    		if (This_FRM==null) return false;
    		var Tab_items=This_FRM.getElementsByTagName(typTag.toString());//creation tableau 
     
    		for (var i= 0; i < Tab_items.length; i++)
    			{
    				try{A_traiter=Tab_items[i].getAttribute("d").toString(); }//traiter que les TD d=y
    				catch (e) {A_traiter='erreur'}
    					if (A_traiter=='y')
    						{
     
    						try
    						{ 
    						 Tab_items[i].ondragstart=function(event){event.dataTransfer.effectAllowed = 'move';event.dataTransfer.setData("Text", event.target.getAttribute('id'));this.style["border"]="1px solid red"; }; 
    						 Tab_items[i].ondragover=function(event){this.style["border"] = "1px dashed #AAA";return false;};						 
    						 Tab_items[i].onDragOut = function(event) {this.style["border"] ="inherit";};
    						 Tab_items[i].ondrop=function(event){/*Apres lacher de souris*/
    						    var element = event.dataTransfer.getData("Text");	
     
     
     
    							if(event.target.className == "haut_boite") {
    								event.target.parentNode.replaceChild(document.getElementById(element), event.target);
    																	   }
    							else{
    								event.target.appendChild(document.getElementById(element));
                                    }
     
    							event.stopPropagation();//arrete l'evenement (dragover)
    							return false;
     
    															};
    						}
    	catch (e) {};
    						};
    			};
     
     
     
     
    							};
    Je n'utilise aucune librairie et le Jquery est exclus.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    oui montre nous un exemple de ton code pour qu'on puisse t'aider !!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 40
    Par défaut
    Voilas ma fonction principale
    Mon tableau a donc des TD ayant pour attribut "d=y"
    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 genDrag(typTag,le_frm){
    		if (typTag==''||typTag==undefined) typTag='td';
    		This_FRM=leID(le_frm);
    		if (This_FRM==null) return false;
    		var Tab_items=This_FRM.getElementsByTagName(typTag.toString());//creation tableau 
     
    		for (var i= 0; i < Tab_items.length; i++)
    			{
    				try{A_traiter=Tab_items[i].getAttribute("d").toString(); }//traiter que les TD d=y
    				catch (e) {A_traiter='erreur'}
    					if (A_traiter=='y')
    						{
     
    						try
    						{ 
    						 Tab_items[i].ondragstart=function(event){event.dataTransfer.effectAllowed = 'move';event.dataTransfer.setData("Text", event.target.getAttribute('id'));this.style["border"]="1px solid red"; }; 
    						 Tab_items[i].ondragover=function(event){this.style["border"] = "1px dashed #AAA";return false;};						 
    						 Tab_items[i].onDragOut = function(event) {this.style["border"] ="inherit";};
    						 Tab_items[i].ondrop=function(event){/*Apres lacher de souris*/
    						    var element = event.dataTransfer.getData("Text");	
     
     
     
    							if(event.target.className == "haut_boite") {
    								event.target.parentNode.replaceChild(document.getElementById(element), event.target);
    																	   }
    							else{
    								event.target.appendChild(document.getElementById(element));
                                    }
     
    							event.stopPropagation();//arrete l'evenement (dragover)
    							return false;
     
    															};
    						}
    	catch (e) {};
    						};
    			};
     
     
     
     
    							};

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 40
    Par défaut
    J'ai tenté de procéder autrement, en stockant la position x/y de ma Div ondrag dans des variables et en restituant ces valeurs à ma Div Target (on drop)...

    Je n'ai pas réussi, j'ai dû me tromper quelque part...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 40
    Par défaut
    Je reprend mon projet et je rebloque.

    Voilas la forme de mon Tableau si sa peux aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    div id="corps">
     
    					<span style="border:none; background:none; width:100%; display:block;">
    						<table width="100%" cellpadding="10px" cellspacing="10px">
    						   <tr>
    		      <!--boite1-->	 <td align="left" style="text-align:left;" d="y">
    						   <div ID="BOX01" class="boite" style="top:15;left:5;height:150;width:220;" draggable="true";>
                             <div style="cursor:move;"class="haut_boite">
    	<span id="TBOX01" class="titrebox flol">Box numero 1</span>
    </div>
    <div id="dtabox01" class="boite_IN"><iframe name="iFBOX01" id="iFBOX01" src="" frameborder="0" height="100%" scrolling="auto" width="100%"></iframe></div>
    </div>						</td>
    J'ai toujours le probleme de Switch entre mon Div deplacer et mon Div deja present dans le TD.
    Et le probleme d'url ,quand je prend un élèment draggable et que je le repositionne dans sont emplacement d'origine, cela me charge une page internet comportant l'ID de cette élèment dans l'url (ex: Je bouge BOX1 de son TD et le replace dedans, le navigateur charge alors =>http:// BOX1.com).

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. "Drag and drop" avec directinput
    Par batosai dans le forum DirectX
    Réponses: 1
    Dernier message: 16/06/2004, 16h48
  3. [VB.NET] Microsoft TreeView drag and drop ?
    Par bigtoof dans le forum ASP.NET
    Réponses: 7
    Dernier message: 24/05/2004, 14h50
  4. [JSP][DRAG AND DROP]
    Par hamed dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 23/01/2004, 17h36
  5. drag and drop
    Par jujuesteban dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/06/2003, 09h23

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