2011-08-26 6 views
1

J'ai une question jquery ici, j'ai des liens html dynamiques sur ma page et une fois qu'un lien est cliqué il devrait ouvrir une boîte de dialogue en utilisant jquery, le problème est que je ne suis pas sûr du non de liens comme ils sont dynamiques générant php en boucle alors je ne peux pas fournir des ID différents à ces liens et les cibler individuellement, je veux un moyen pour que tout le lien est cliqué, il devrait ouvrir une boîte de dialogue, même si tous les mêmes ID ou classe. Faites-moi savoir si vous voulez que je sois plus précis.Boîte de dialogue Jquery

Merci

+0

Les boîtes de dialogue doivent-elles être uniques? – bevacqua

+0

non ils seraient tous les mêmes mais tous les liens auront le même id ou classe – Shaun

Répondre

0

Si vous générez dynamiquement le contenu que vous pouvez toujours avoir une <div> dans la boîte de dialogue et le remplir avec .html(contents);

0

avec la même classe

$('a.your_class').click(function(){ 
    //your code for dialog 
}); 

Cette habitude de travail avec le même id, parce que jquery renverra seulement le premier résultat, car ID doit être unique sur toute la page.

pour chaque lien

$('a').click(function() { 
    //your dialog here 
}); 

pour les liens dans le conteneur spécifique

$('#container a').click(function() { 
    //your code for dialog 
}); 

Assurez-vous que le code doit être des lieux dans

$ (document) .ready (fonction ( { // votre code ici, cela exécutera du code quand la page est chargée });

+0

mais il ne fait que pour le premier lien pas pour le reste d'entre eux j'ai aussi essayé jquery chaque fonction qui ne semble pas trop fonctionner – Shaun

+0

il fera pour chaque lien sur la page –

+0

mais de cette façon tous mes liens sur la page va commencer à générer des boîtes de dialogue que je ne veux pas que je veux cibler ces liens avec ID spécifique disons et j'ai 10 de ceux avec le même identifiant – Shaun

0

Jetez un oeil à la fonction live jQuery pour la liaison à des éléments qui n'existent pas encore.

http://api.jquery.com/live

J'utiliser en direct pour se lier aux liens via un nom de classe. Lorsque vous cliquez sur le lien, ouvrez la boîte de dialogue et ouvrez-la. Quelque chose comme ça ...

$(".some_class").live("click", function(event){ 

    $(this).dialog(options); //create the dialog 
    $(this).dialog("open"); //open the dialog 
}); 
+0

yup que semble être utile Bzink – Shaun

0

Vous devez lier votre événement click à quelque chose qui sera cohérent avec les liens générés dynamiquement. Par exemple, si vous donnez à vos liens une classe de "lien de dialogue", vous pouvez faire un sélecteur pour cette classe spécifique.

$('a.dialog-link').click(function(){ 
//Do something 
}); 

Si les liens sont dynamiquement ajoutés à votre dom via javascript après pageLoad, alors vous devez déléguer le clic avec en direct.

$('a.dialog-link').live('click',function(){ 
//Do something 
}); 
+0

Ok! .. laissez-moi essayer que tha n merci amin .. – Shaun

0

$(foo).dialog({ autoOpen: false })

va créer votre boîte de dialogue et

$('a.opendialog').live('click',function() { 
    $(foo).dialog('open'); 
    return false; 
} 

ouvrira chaque fois que vous cliquez sur un lien avec la classe « openDialog » ajouté.