Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1806 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  OnClick... pourquoi ça marche pas??

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

OnClick... pourquoi ça marche pas??

n°1353014
Dorian BAC​+4
Posté le 24-04-2006 à 19:03:34  profilanswer
 

Bonsoir,
 
Je rencontre un problème très contrariant...
 
J'ai affecté une fonction javascript à chacun de mes éléments de ma page web.
ex : <div id="A1" onClick=mafonction("A1" );>
 
et le problème c'est que lorsque je clique sur cet élément ce n'est pas l'évènement onClick de celui-ci qui s'active... mais celui du conteneur global de la page...
 
Je vous remercie par avance de vos réponses!!

mood
Publicité
Posté le 24-04-2006 à 19:03:34  profilanswer
 

n°1353020
nargy
Posté le 24-04-2006 à 19:09:20  profilanswer
 

un évènement javascript doit retourner true ou false:
true-> l'évènement a été traité, ne pas faire traiter l'évènement par les éléments parents,
false-> l'évènement n'a pas été traité, faire traiter l'évènement par les éléments parents,
 
<<void>> est renvoyé par les fonction sans retour, interprété comme <<false>>.

n°1353021
Dorian BAC​+4
Posté le 24-04-2006 à 19:12:09  profilanswer
 

ah ok c cool de me le dire, dans une question similaire on m'avait dit de mettre false!! ok jvais essayer et je confirmerai

n°1353023
Dorian BAC​+4
Posté le 24-04-2006 à 19:14:51  profilanswer
 

... bon et le return true doit etre placé dans ma fonction appelée?
 
parce que si c le cas je confirme que ça ne marche tjs pas
 
Essayé également après l'appel de la fonction avec onclick... pareil ça ne marche pas


Message édité par Dorian BAC+4 le 24-04-2006 à 19:18:49
n°1353028
nargy
Posté le 24-04-2006 à 19:25:01  profilanswer
 

Code :
  1. <div id="A1" onClick="mafonction(this); return true;">

n°1353030
nargy
Posté le 24-04-2006 à 19:27:54  profilanswer
 

heu, j'ai un doute, je suis peut être en train de confondre true/false.

n°1353031
Dorian BAC​+4
Posté le 24-04-2006 à 19:28:25  profilanswer
 

nan true c bien ça, mais ça ne marche pas...
 
Par contre l'élément est bien appelé mais change (dans le cas du true dans la fonction)!! donc c un truc dans le genre, mais lequel...


Message édité par Dorian BAC+4 le 24-04-2006 à 19:38:57
n°1353037
nargy
Posté le 24-04-2006 à 19:40:49  profilanswer
 

primo je confonds true/false,
secundo, ça ne fonctionne pas avec les parents mais uniquement avec l'action par défaut associé,
 
pour résourdre ton problème utilise une variable globales:

Code :
  1. var transmettre_parent=true;
  2. function transmettre(t)
  3. { transmettre_parent=t; }
  4. function fct_parent()
  5. {
  6.   if (!transmettre_parent) return;
  7.   ...
  8. }


Edit: ok


Message édité par nargy le 24-04-2006 à 19:42:43
n°1353043
Dorian BAC​+4
Posté le 24-04-2006 à 19:47:29  profilanswer
 

:S ma fonction appelée est une ouverture d'un popup ouvrant une page php avec passage en paramètre de l'id de l'élément cliqué...
 
tu as écris deux fct, qd est appelée la fct transmettre?

n°1353054
nargy
Posté le 24-04-2006 à 20:04:21  profilanswer
 

:lol: kk

Code :
  1. <script type="text/javascript" language="JavaScript">
  2. var transmetre_parent=true;
  3. function transmettre(t)
  4. { return transmetre_parent=t; }
  5. function transmission()
  6. { return transmetre_parent; }
  7. </script>
  8. <div onclick="javascript: if(transmission()) window.alert('BODY');return transmission();">
  9. BODY
  10. <a href="/" onclick="javascript: if(transmission()) window.alert('A');return transmettre(false);">
  11. A
  12. </a>
  13. </div>

mood
Publicité
Posté le 24-04-2006 à 20:04:21  profilanswer
 

n°1353073
Dorian BAC​+4
Posté le 24-04-2006 à 20:32:06  profilanswer
 

je ne comprend pas l'intérêt de tes fonctions...

n°1353076
Dorian BAC​+4
Posté le 24-04-2006 à 20:34:13  profilanswer
 

Code :
  1. var popup;
  2. function essai(id)
  3. {
  4.   popup = window.open('popup.php?id='+id,'Titre','width=375,height=300,toolbal=no,location=no,directories=no,status=no,menubar=no=scrollbars=no,resilable=no');
  5.   return true;
  6. }


 

Code :
  1. <div id='A1B1' onClick="javascript:essai();">
  2. <div id='A1B2' onClick="javascript:essai();">
  3. <img id='A3B1' onClick="javascript:essai();">


 
j'obtiens tjs A1B1 qui est le conteneur global du site

n°1353103
nargy
Posté le 24-04-2006 à 21:11:10  profilanswer
 

remplacer essai() dans les onclicks par:

Code :
  1. if(transmission()) essai();return transmettre(false);


C'est à dire si transmission() de l'évènement autorisé, executer la fonction essai(), retourner transmettre(false) pour inactiver la transmission de l'évènement.

n°1357014
Dorian BAC​+4
Posté le 01-05-2006 à 12:03:01  profilanswer
 

bon et si g envie d'utiliser plusieurs fois la fonction, maintenant elle est bloquée..

n°1357016
gatsu35
Blablaté par Harko
Posté le 01-05-2006 à 12:04:14  profilanswer
 

tu postes tout le code JS et HTML de ta page qu'on puisse te dire ce qui ne fonctionne pas, à mon avis c'est parce que c'est mal programmé [:petrus75]

n°1357020
nargy
Posté le 01-05-2006 à 12:06:26  profilanswer
 

return transmettre(true);
pour la débloquer.
poste plutôt un lien, histoire de pas trop spammer.. :D

n°1357021
Dorian BAC​+4
Posté le 01-05-2006 à 12:06:40  profilanswer
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Page d'accueil
  5. </TITLE>
  6. <STYLE type='text/css'>
  7. *
  8. {
  9. margin:0;
  10. padding:0;
  11. }body
  12. {
  13. width: 100%;
  14. height: 100%;
  15. overflow:auto;
  16. margin: 0;
  17. padding: 0;
  18. font-family:'Verdana';
  19. font-weight: bold;
  20. font-size:12px;
  21. background-image: url(Fonds/back.jpg);
  22. background-repeat: repeat-x;
  23. background-attachment: fixed;
  24. color:#E0E0FF;
  25. }
  26. img#A3B1
  27. {}
  28. div#A1B2
  29. {height:50px;
  30. padding:10px;
  31. text-align:right;
  32. font-family:'Verdana';
  33. font-weight: bold;
  34. font-style:italic;
  35. border: 1px solid #A0E014;}
  36. div#A1B3
  37. {position: absolute;
  38. padding:5px;
  39. top:150px;
  40. left:10px;
  41. width: 130px;
  42. height: 100px;
  43. background-color:#BBBBFF;
  44. border: 1px solid #A0E014;}
  45. div#A1B5
  46. {margin-top:20px;
  47. background: url(Fonds/btexte.jpg) #0073DD repeat-x;
  48. padding:15px;
  49. border: 1px solid #A0E014;}
  50. div#A1B4
  51. {margin-left: 160px;
  52. margin-right: 10px;
  53. width: auto;
  54. color:#E0E0FF;}
  55. div#A1B1
  56. {width: 100%;
  57. height: 100%;
  58. position: absolute;}
  59. </STYLE>
  60. <SCRIPT LANGUAGE='Javascript' type='text/javascript'>
  61. var popup;
  62. var transmetre_parent=true;
  63. function transmettre(t)
  64. {
  65.   return transmetre_parent=t;
  66. }
  67. function transmission()
  68. {
  69.   return transmetre_parent;
  70. }
  71. function insert_option(field,value,value_text)
  72. {
  73.   index=field.options.length;
  74.   field.options[index]=new Option(value,value_text);
  75. }
  76. function essai(id)
  77. {
  78. if (! window.focus)return true;
  79. var mylink = 'popupbasic.html';
  80. var href;
  81. if (typeof(mylink) == 'string')
  82. href='popup.php?id=';
  83. else
  84. href=mylink.href;
  85. window.open(href+id, 'Titre', 'width=375,height=300,toolbal=no,location=no,directories=no,status=no,menubar=no=scrollbars=no,resilable=no');
  86. return false;
  87. }
  88. </SCRIPT>
  89. </HEAD>
  90. <BODY>
  91. <div id='A1B1' onClick="javascript: if(transmission()) essai('A1B1');return transmettre(false);">
  92. <div id='A1B2' onClick="javascript: if(transmission()) essai('A1B2');return transmettre(false);">
  93. <img id='A3B1' onClick="javascript: if(transmission()) essai('A3B1');return transmettre(false);">
  94. </div>
  95. <div id='A1B3' onClick="javascript: if(transmission()) essai('A1B3');return transmettre(false);">
  96. </div>
  97. <div id='A1B4' onClick="javascript: if(transmission()) essai('A1B4');return transmettre(false);">
  98. <div id='A1B5' onClick="javascript: if(transmission()) essai('A1B5');return transmettre(false);">essai<br>
  99. la suite bientôt
  100. </div>
  101. </div>
  102. </div>
  103. </BODY>
  104. </HTML>


 
mouep ça fait bcq...


Message édité par Dorian BAC+4 le 01-05-2006 à 12:17:09
n°1357025
gatsu35
Blablaté par Harko
Posté le 01-05-2006 à 12:09:30  profilanswer
 

déjà ferme tes DIV je comprend pas pourquoi tes div ne sont pas fermés :o
 
ferme chaque div et vire moi le paté de BR

n°1357027
Dorian BAC​+4
Posté le 01-05-2006 à 12:10:16  profilanswer
 

ils le sont!

n°1357041
gatsu35
Blablaté par Harko
Posté le 01-05-2006 à 12:18:12  profilanswer
 

je peux comprendre pourquoi tu as pleins de div imbriqués .

n°1357044
Dorian BAC​+4
Posté le 01-05-2006 à 12:19:44  profilanswer
 
n°1357140
Dorian BAC​+4
Posté le 01-05-2006 à 14:28:28  profilanswer
 

up

n°1357142
gatsu35
Blablaté par Harko
Posté le 01-05-2006 à 14:34:31  profilanswer
 

ET pourquoi tes divs sont imbriqués :/ avec des onclicks de partout sur chaque div :/

n°1357143
gatsu35
Blablaté par Harko
Posté le 01-05-2006 à 14:35:12  profilanswer
 

et c'est quoi qui marche pas :/
le fait d'ouvrir une popup ? ou la popup qu n'interagit pas avec la fenetre ouvrante (sachant que c'est mal codé d'office)

n°1357147
Dorian BAC​+4
Posté le 01-05-2006 à 14:41:53  profilanswer
 

les imbrications j'ai pas le choix c comme ça
 
pour ce qui est du problème c le fait soit qu'en cliquant sur l'élément l'appel boucle sur lui meme juskà atteindre le conteneur global A1B1
 
soit que l'appel se fait correctement dans l'exemple montrait ci-dessus mais qu'il ne peut etre fait qu'une fois...
 
et je souhiaterais pouvoir appeler le popup autant de fois ke je veux... et surtout sur l'élément que je veux

n°1357151
gatsu35
Blablaté par Harko
Posté le 01-05-2006 à 14:49:34  profilanswer
 

tu fous '_blank' a la place de 'titre' :/
ca t'ouvrira une nouvelle popup à chaque window.open

n°1357162
Dorian BAC​+4
Posté le 01-05-2006 à 15:00:32  profilanswer
 

okayy avis aux amateurs ki ne comprennent rien à ceux qu'ils écrivent... merci bien je me passerai de vos réponses à 2 sous.
 
j'attends avec impatience vos réponses constructives ;)

n°1357163
Dorian BAC​+4
Posté le 01-05-2006 à 15:01:48  profilanswer
 

vous avez tous mon code source sur http://webtoulon.free.fr/Sam/
et vous pouvez le copier pour le tester
 
pas de réponses qui ne marchent pas merci

n°1357165
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-05-2006 à 15:03:28  profilanswer
 

Dorian BAC+4 a écrit :

okayy avis aux amateurs ki ne comprennent rien à ceux qu'ils écrivent... merci bien je me passerai de vos réponses à 2 sous.
 
j'attends avec impatience vos réponses constructives ;)


et moi j'attends avec impatience le pourquoi de ce post
 
edit: et si possible, sans fautes d'orthographe niveau CM2 ou de SMS Style. merci

Message cité 1 fois
Message édité par Harkonnen le 01-05-2006 à 15:10:00

---------------
J'ai un string dans l'array (Paris Hilton)
n°1357167
gatsu35
Blablaté par Harko
Posté le 01-05-2006 à 15:08:29  profilanswer
 

J'ai la vague impression que tu ne sais même pas ce que tu as codé [:petrus75]

n°1357173
gatsu35
Blablaté par Harko
Posté le 01-05-2006 à 15:14:00  profilanswer
 

Harkonnen a écrit :

edit: et si possible, sans fautes d'orthographe niveau CM2 ou de SMS Style. merci


 
Ho oui fouette moi à coup de corrections d'orthographe :love:  

n°1357175
Dorian BAC​+4
Posté le 01-05-2006 à 15:15:47  profilanswer
 

Explication :
 
Je souhaiterais pouvoir ouvrir un popup lors d'un clic sur un des éléments de ma page.
Chaque élément a son Id propre qui passé en paramètre lors de l'ouverture du popup, me permettra ensuite d'agir sur l'élément sélectionné.

n°1357178
Dorian BAC​+4
Posté le 01-05-2006 à 15:17:25  profilanswer
 

Le problème actuel est que je ne peux pas faire autrement que d'utiliser des imbrications et ce que j'ai eu l'occasion de tester jusqu'à présent m'a soit limité à l'ouverture d'un seul popup (puis plus possible d'en ouvrir d'autre), soit d'ouvrir autant de popup que je veux mais toujours en ayant pour paramètre le conteneur global

n°1357182
Dorian BAC​+4
Posté le 01-05-2006 à 15:21:00  profilanswer
 

Le problème viendrait soit-disant du renvoie de true ou false.
Les deux codes tester font :
 
- je renvoie false... mais je peux plus utiliser la fonction ensuite
- je renvoie true... la fonction semble boucler jusqu'à parvenir au conteneur parent global

n°1357234
Dorian BAC​+4
Posté le 01-05-2006 à 16:32:25  profilanswer
 

up

n°1357235
gatsu35
Blablaté par Harko
Posté le 01-05-2006 à 16:33:22  profilanswer
 

http://gatsu.ftp.free.fr/html/popupinteraction/
tu lances principale.html
 
les onclicks sur les id sont automatisés
la fonction Popup(obj, AllowMultiplePopup)  
obj = correspond à l'objet sur lequel tu as cliqué
AllowMultiplePopup = booleen,  
-true : chaque objet aura sa popup,  
-false ou rien du tout = tous les objets auront la même popup
 
exemples de lancement de cette fonction :  
Popup(this)
Popup(this,true)
Popup(this,false)
 
et dans popup.html, je récupère l'id passé en paramètres dans l'url (oui je suis une grosse feignasse)
et baste :o
 
C'est pas exempt de défauts hein :o
 
Par exemple il faudrait rajouter un control de dimensions afin de ne pas avoir de hauteur et largeur négative, afin de ne pas se prendre de alert dans le coin de la gueule.


Message édité par gatsu35 le 01-05-2006 à 16:49:10
n°1357252
nargy
Posté le 01-05-2006 à 16:59:57  profilanswer
 

tu n'a pas du comprendre la méthode.
dans le tout premier div, tu remplace false par true.

n°1357258
Dorian BAC​+4
Posté le 01-05-2006 à 17:16:09  profilanswer
 

je veux que TOUT meme le premier div puisse etre modifié
et nan gatsu ça marche pas
 
Cf modifications : http://webtoulon.free.fr/Sam/


Message édité par Dorian BAC+4 le 01-05-2006 à 17:25:43
n°1357262
Dorian BAC​+4
Posté le 01-05-2006 à 17:22:07  profilanswer
 

gatsu pk te limites tu aux div en plus?

n°1357266
gatsu35
Blablaté par Harko
Posté le 01-05-2006 à 17:33:43  profilanswer
 

Bon c'est bon ça marche :o
J'ai un booleen, qui est à false par defaut
dès qu'on click il passe à true et empeche les autres onclicks des autres div d'ouvrir une popup. Ensuite dès que la popup est totalement chargée le booleen repasse à false à partir de la popup.
 
Et si je me limite au div c'st parce que dans ton exemple ya que des div :o, et que j'ai juste une fonction d'initialisation
tu peux très bien le faire sur ce que tu veux :o
ou bien rajouter l'évènement onclick à la main sur n'importe quoi :o
 
<a href="#" id="objet" onclick="Popup(this, true)">ta reum </a>


Message édité par gatsu35 le 01-05-2006 à 17:34:07
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  OnClick... pourquoi ça marche pas??

 

Sujets relatifs
XHTML : target="_blank" devient onclick="window.open(...)",oui mais...Pourquoi mon if marche pas
test javascript avec onclick="..."Pourquoi sa marche pas ?
[C#] DataAdapter.Update() marche pôradiobutton et selected qui marche po
Pb avec le bouton "onclick"[PHP] Fonction mail() qui ne marche pas
Regex qui ne marche pas :@accesskey et onclick : marche pas sous IE ?
Plus de sujets relatifs à : OnClick... pourquoi ça marche pas??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR