Bonjour !
J'aimerais faire apparaître plusieurs dialogs sur une même page. Chacune des dialogs sert à afficher un contenu reçu via Ajax.
Pour cela j'ai créé la fonction suivante :
Cette fonction permet de charger le résultat d'une requête AJAX, dont l'URL doit être fournie en premier paramètre, dans l'élément HTML ayant pour identifiant le second paramètre pour enfin l'afficher comme un dialog.
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 function call(url, id) { // Vérification des paramètres if(!url && !id) return; var node = null, init = false; // Récupération ou création de l'élément d'identifiant 'id' if($('#'+id).size()) node = $('#'+id); else { node = $('<div/>').attr('id', id).hide().appendTo(document.body); init = true; } // Chargement de la page 'url' dans l'élément node.load(url); // Page chargée -> ouverture de la boite de dialogue node.ajaxComplete( function(event, request, settings) { if(init) node.dialog(); // Initialisation node.dialog('open'); // Ouverture } ); }
Pour appeler la fonction, plusieurs images possèdent donc l'attribut suivant :
Problème : Au premier clic sur une image pas de soucis, mais lorsque que plusieurs dialogs ont été initialisées, l'ouverture d'un dialog ouvre les autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part onclick="call('une_url', 'un_id')"
Si vous avez une idée sur le problème je suis preneur.
Merci.
Partager