Boucle sur même ID

tchouny Messages postés 19 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 3 octobre 2013 - Modifié par BunoCS le 4/10/2013 à 17:16
 tchouny - 25 oct. 2013 à 16:42
Bonjour,
quelqu'un peut-il m'aider avec le code ci-dessous?
J'ai des ID #pop1,2,3.... #oform1,2,3..... et selon celui qui est utilisé je dois appliquer une fonction.
Voici le code
$(document).ready(function(){
    for(var i=1; i<25; i++)
    {
        var a = $('#pop'+i);
        var b = $('#oform'+i);
        a.click(function(){
            b.fadeIn(500);
            positionPopup();
        });   // action
    }//end for
    //close popup
    for(var i=1; i<25; i++)
    {
        var c =$('#close'+i);
        var d = $('#oform'+i);
        c.click(function(){
            d.fadeOut(500);
        });   // action
    }//end for
});

//position the popup at the center of the page
function positionPopup(){
 if(!$('#oform1,#oform2,#oform3,#oform4,#oform5,#oform6,#oform7,#oform8,#oform9,#oform10,#oform11,#oform12,#oform13,#oform14,#oform15,#oform16,#oform17,#oform18,#oform19,#oform20,#oform21,#oform22,#oform23,#oform24').is(':visible')){
        return;
    }
    $('#oform1,#oform2,#oform3,#oform4,#oform5,#oform6,#oform7,#oform8,#oform9,#oform10,#oform11,#oform12,#oform13,#oform14,#oform15,#oform16,#oform17,#oform18,#oform19,#oform20,#oform21,#oform22,#oform23,#oform24').css({
        left: ($(window).width() - $('#oform1,#oform2,#oform3,#oform4,#oform5,#oform6,#oform7,#oform8,#oform9,#oform10,#oform11,#oform12,#oform13,#oform14,#oform15,#oform16,#oform17,#oform18,#oform19,#oform20,#oform21,#oform22,#oform23,#oform24').width()) / 3,
        position:'absolute'
    });
}

//maintain the popup at center of the page when browser resized
$(window).bind('resize',positionPopup); 
 


Tchouny

4 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
4 oct. 2013 à 17:17
Hello,
Je ne fais que passer. Je me suis permis de modifier l'indentation de ton code pour plus de lisibilité
0
Et moi qui pensait que cette communauté était active!!
Personne n'est donc capable de m'aider.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
17 oct. 2013 à 08:29
Bonjour.
Une question correctement posée, dont le souci est clairement exposé à de bien meilleurs chances d'obtenir une réponse.
Là, tu nous balance un code sans nous expliquer ce qui ne va pas. ...
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
17 oct. 2013 à 09:13
Hello,
Comme l'a dit Jordane45, tu aurais plus de chance d'avoir des résultats avec,une question précise ;) N'ayant pas de compétences en JS, je ne peux t'aider.

De plus, merci de garder à l'esprit que CodeS-SourceS est une communauté d'entraide. Toutes les réponses sur le forum sont assurées par des bénévoles qui donnent de leur temps libre pour aider à résoudre les problèmes.

Merci de ta compréhension...et de ta patience =D
0
Intéressant! Intéressant! Il aura fallu que j'envoie ce genre d'email pour obtenir une réaction. Je suis d'accord ma question manque de contenu mais il était très simple de me dire, avant que j'exploite votre sensibilité, qu'il manquait de détails pour pouvoir répondre.
Quoi qu'il en soit merci d'avance pour votre aide.
Alors voici plus de détails.
J'ai sur une même page html plusieurs fois le même code qui doit s'exécuter. example

<a id="pop1" >Read</a><br>
<form id="oform1" style="display:none">
<a><img id="picform1" src="sept13/pic1.jpg"></a>
<p>blablabla</p>
<input type="button" id="close1" value="Close" /></form>

Pour chaque partie de code comme ci dessus, j'ai nommé les ID oform :oform1 à oform20 et close1 à close20. Donc ceci se retrouve sur ma page html 20x.

Si je nomme mes ID de la même facon à chaque fois que je cliquerai sur le bouton read, les 20 vont s'ouvrir d'un coup.
Donc je les ai nommé de 1 à 20.
Au départ je n'ai pas fait de boucle dans mon code js. J'ai simplement écrit 20x le code mais vachement long.
Je me suis dit je me lance dans une boucle mais étant débutant je me suis planté quelque part car ma boucle (voir code du premier message) ne fonctionne pas.

Ma question est donc peut-on m'aider pour faire cette boucle?
Merci
0
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
25 oct. 2013 à 15:37
if(!$('#oform1,#oform2,#oform3,#oform4,#oform5,#oform6,#oform7,#oform8,#oform9,#oform10,#oform11,#oform12,#oform13,#oform14,#oform15,#oform16,#oform17,#oform18,#oform19,#oform20,#oform21,#oform22,#oform23,#oform24')

ERF !!!

$('#oform1,#oform2,#oform3,#oform4,#oform5,#oform6,#oform7,#oform8,#oform9,#oform10,#oform11,#oform12,#oform13,#oform14,#oform15,#oform16,#oform17,#oform18,#oform19,#oform20,#oform21,#oform22,#oform23,#oform24').css({

ERF ???

$('#oform1,#oform2,#oform3,#oform4,#oform5,#oform6,#oform7,#oform8,#oform9,#oform10,#oform11,#oform12,#oform13,#oform14,#oform15,#oform16,#oform17,#oform18,#oform19,#oform20,#oform21,#oform22,#oform23,#oform24').width()) / 3,

ARF !!!

live ? (JQuery) ???
0
Je ne comprends rien à ce message
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
17 oct. 2013 à 11:58
Intéressant! Intéressant! Il aura fallu que j'envoie ce genre d'email pour obtenir une réaction.
Bah, c'est un peu normal...Tu nous "attaques", nous te répondons ;)

Je suis d'accord ma question manque de contenu mais il était très simple de me dire, avant que j'exploite votre sensibilité, qu'il manquait de détails pour pouvoir répondre.
C'est le problème de beaucoup de développeurs: il faut du temps avant qu'ils se mettent eux-mêmes en question... =)

Bon, je ne fais pas de JS, mais voici quelques pistes:
- tu peux fusionner tes 2 boucles: tu parcours une fois tes composants et tu appliques tes fonctions
- dans ta fonction
positionPopup
, passes lui l'identifiant en paramètres, plutôt que de retester à chaque fois.

Désolé, je ne pourrais être plus précis...
0
Rejoignez-nous