[JQueryUI] Boite "Dialog" après un lien

Résolu/Fermé
NirvX Messages postés 11 Date d'inscription vendredi 24 février 2012 Statut Membre Dernière intervention 19 février 2013 - 24 févr. 2012 à 22:51
NirvX Messages postés 11 Date d'inscription vendredi 24 février 2012 Statut Membre Dernière intervention 19 février 2013 - 24 févr. 2012 à 23:37
Bonsoir,

Je débute avec la librairie JQueryUI, et même avec Javascript tout court.
En fait j'essaye juste de faire un petit truc sympa pour un site que je démarre.

Le but :
-Quand l'utilisateur clique sur un lien, une boite de dialogue s'affiche à coté de sa souris, lui permettant de sélectionner des objets..
(Et cela avec plusieurs liens sur la même page).

Le principal fonctionne, mais petit problème :
Quand on clique sur un lien au départ, les deux boites de dialogues s'ouvrent (alors qu'il en faut qu'une !)

Voici le code Javascript :

<script type="text/javascript">
function onclick_page(event) // Lors d'un clic
{
		var x = event.clientX; // Récupération position de la souris
		var y = event.clientY;
	  $('#gestion_nourrir').dialog({
		bgiframe: true,
		resizable: true,
		modal: false,
		position: [x,y],
		width: 350,
		title: "Gestion"
	  });
	  
	  $('#gestion_boire').dialog({
		bgiframe: true,
		resizable: true,
		modal: false,
		position: [x,y],
		width: 350,
		title: "Gestion"
	  });

	  $('#nourrir').click(function(){ // On ouvre la boite de dialogue correspondante
	  $('#gestion_boire').dialog('close');
		$('#gestion_nourrir').dialog('open');
		
		return false;
	  });
	  
	  $('#boire').click(function(){ // On ouvre la boite de dialogue correspondante
		$('#gestion_nourrir').dialog('close');
		$('#gestion_boire').dialog('open');
		return false;
	  });

}
</script>


Le code HTML (ce qu'il faut) :
<a href='#' id='nourrir'  onclick="onclick_page(event);">Nourrir</a></p>
<a href='#' id='boire' onclick="onclick_page(event);">Donner à boire</a></p>

<div id="gestion_nourrir" style="display:none; font-size:0.7em;">
<p>
<?php
$aliments = array();
$aliments = get_aliments();
....
?></p>
</div>


De même , il y a une div "gestion_boire"..

Alors le problème, c'est que quand je clique sur un lien à la premiere ouverture de page, les deux boites de dialogues s'ouvrent.
Mais ensuite, ça marche. C'est seulement au premier chargement de la page et des dialog que ça me les ouvre en double.

Peut-être avez-vous une solution ? (Ou même un code plus concis car je débute et j'essaye de chopper du code par-ci par-là, de le modifier etc.)

Merci d'avance !!
A voir également:

1 réponse

NirvX Messages postés 11 Date d'inscription vendredi 24 février 2012 Statut Membre Dernière intervention 19 février 2013
24 févr. 2012 à 23:37
J'ai trouvé une solution beaucoup plus simple en réfléchissant.
Pour chaque lien, j'ai fait une fonction différente en javascript.
Exemple :
<a href='#' id='nourrir' onclick="onclick_nourrir(event);">Nourrir</a></p>
<a href='#' id='boire' onclick="onclick_boire(event);">Donner à boire</a></p>

Je fais une fonction "onclick_nourrir" qui ouvre une boite de dialogue directement :
function onclick_page(event) // Lors d'un clic
{
var x = event.clientX; // Récupération position de la souris
var y = event.clientY;
$('#gestion_nourrir').dialog({
bgiframe: true,
resizable: true,
modal: false,
position: [x,y],
width: 350,
title: "Gestion"
});
}

Et de même pour boire.

En fait j'ai résolu mon problème du coup !
Merci quand meme lol !

A bientot
0

Discussions similaires