Bonjour,
quelle est la méthode préconisée pour faire ce qui suit en JQuery ?
En JQuery, le code HTML devient :
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 HTML : <a href="#" id="1" value="5" onclick="maFction(3,'ABC',11)">lien 1</a><br/> <a href="#" id="2" value="155" onclick="maFction(4,'def',12)">lien 2</a><br/> <a href="#" id="2" value="44" onclick="maFction(5,'ghi',13)">lien 3</a><br/> JS : function maFction(p1,p2,p3) { document.window.opener.document.getElementById('idcible1').value=p1 ; document.window.opener.document.getElementById('idcible2').value=p2 ; document.window.opener.document.getElementById('idcible3').value=p3 ; }
...puisque l'appel à onclick est sorti de l'HTML.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 HTML : <a href="#" id="1" value="5" >lien 1</a><br/> <a href="#" id="2" value="155" >lien 2</a><br/> <a href="#" id="2" value="44" >lien 3</a><br/>
Vous le voyez, il y a deux questions :
1- les liens "a" sont construits dynamiquement avec une boucle côté PHP. Chaque onclick appelle donc la même fonction JS mais avec des paramètres différents. Comment faire ça en JQuery ?
Je vois bien un $('a').click... mais pour passer les paramètres ?
Éventuellement les stocker dans les attributs comme alt, title, value... mais quid si on a 10 paramètres ? Sans compter qu'on n'a peut être pas envie de polluer ses attributs avec des données techniques !
EDIT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 JQuery : $(document).ready(function(){ $("a").click(function(event){ ..... ???? .... ; event.preventDefault(); }); });
Après moultes recherches je suis tombé sur ce débat intéressant :
http://stackoverflow.com/questions/1...tom-attributes
Il y a les "pour" et les "contre". La solution avec un namespace propre me semble être un bon compromis même si la page n'est plus valide à validator.w3.org .
2- Vous voyez que cette page est en fait une popup et doit mettre à jour l'appelant via un document.window.opener.document.getElementById...
Quel est l'équivalent en JQuery ?
EDIT : J'ai trouvé pour ce point :
N'hésitez pas à me demander des explications en cas de besoin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 //cas d'une zone bloc (div...) : window.opener.jQuery("#test").text(.......); //cas d'une champ d'un fomulaire (input) : window.opener.jQuery("#test2").attr('value',$(this).attr('id')) ;
Merci
Cordialement
Partager