Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/03/2011, 22h55   #1
Nouveau Membre du Club
 
Avatar de Freeluvs
 
Inscription : février 2009
Messages : 74
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : février 2009
Messages : 74
Points : 25
Points : 25
Par défaut Rendre "droppable" une div généré par Ajax

Bonsoir à tous,

J'ai découvert il y a peu l'excellent jQuery UI, et surtout les possibilités qu'il offre pour faire du Drag and drop.
Voila mon soucis: j'arrive à utiliser sans soucis les fonctionnalités "draggable" et "droppable" de jQueryUI sur des <div>, mais dès que ses <div> sont générés en ajax (j'utilise la bibliothèque xAjax), impossible de les rendre "droppable".

En cherchant un peu dans la doc j'ai vu qu'il existait pour "draggable" la méthode refreshPosition, qui à chaque mouvement de souris rafraichis la liste des cible "droppable", mais ça ne fonctionne pas pour moi.
J'ai vu aussi que certains parlait de détruire les anciens éléments "droppable" et de les redéfinir, mais idem sans résultat.

Niveau code ça donne un truc comme ça :

-La declaration des drag & drop :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<script language="javascript">
	$(function() {
		$( "#elem_1" ).draggable({ refreshPosition: true, revert: 'invalid' });
		$( "#dropZone" ).droppable({
			activeClass: "ui-state-hover",
			hoverClass: "ui-state-active",
			drop: function( event, ui ) {
			$( this )
			.addClass( "ui-state-highlight" )
					 .html( "blabla" );
			}
		});
	});
</script>
En résumé la structure de mes div donne ça :
Code :
1
2
3
4
5
6
 
<div id="elem_1">Blabla</div>
 
<div id="general">
   <div id="dropZone"></div>
</div>
Et ma fonction Ajax qui met à jour la div#general fait ça:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
...
<div id="dropZone"></div>
<script language="javascript">
	$(function() {
		$( "#dropZone" ).droppable({
			activeClass: "ui-state-hover",
			hoverClass: "ui-state-active",
			drop: function( event, ui ) {
			$( this )
			.addClass( "ui-state-highlight" )
					 .html( "blabla" );
			}
		});
	});
</script>
Si je met la div#dropZone en dehors de ce que génère ajax, ça fonctionne sans soucis (par contre je n'arrive pas à récupérer les info dynamique contenu dans div#general).
Mais dès que je la met dedans, meme si je la redeclare droppable, elle ne l'est pas.

Si quelqu'un à une idée la dessus, je suis preneur !
Merci d'avance

Edit: Je crois avoir trouvé. Quand je met un delais d'éxecution de 2 secondes entres le moment ou ajax change le code et ou j'applique les script qui mettent les droppable, ça fonctionne !
Freeluvs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 08h55   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
live()
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h37.


 
 
 
 
Partenaires

Hébergement Web