test javascript avec onclick="..."

test javascript avec onclick="..." - HTML/CSS - Programmation

Marsh Posté le 06-04-2006 à 09:35:03    

voilà, j'ai créé deux fonction action1() et action2()
 
dans mon code html, j'ai a un moment un onclik= "action1('menu');"
 
en fait, je voudrais créer une variable initialisé à 0. lors du "onclik", il faudrait pouvoir tester cette variable, si elle est égale à 0, c'est la fonction action1() qui va être executé et ma variable va prendre la valeur 1. si la variable est égale à 1, c'est ma fonction action2() qui va s'exécuter et ma variable va prendre la valeur 0.
 
le problème, c'est que je ne sais pas trop ou placer ce scripte.
et faut t'il créer une fonction pour ça.
 
j'ai pensé à un truc du genre :
 
function test {
var i =0;
if (i=0) {action1()
i++; }
else { action2()
i=0;}
}
 
et après onclik ="test('menu');"
 
quelqun peux m'aider ?

Reply

Marsh Posté le 06-04-2006 à 09:35:03   

Reply

Marsh Posté le 06-04-2006 à 09:39:12    

en gros generer un double click ?
 
et l'évenement ondblclick ?

Reply

Marsh Posté le 06-04-2006 à 09:49:43    

j'ai déjà essayé avec ondblclick et ça marche pas, d'ou mon idée de variable et de test.  mais la fonction test que j'ai cité précedement ça marche pas.

Reply

Marsh Posté le 06-04-2006 à 10:24:34    

HELP j'y arrive pas.
 
ondlbclick a priori c que pour javascript 1.2 et plus et puis ça marche pas toute façon et ma fonction non plus sniiif
 
HELP

Reply

Marsh Posté le 06-04-2006 à 10:25:06    

Ta fonction test ne peut pas marcher. Tu déclares la variable i à l'intérieur de la fonction, donc à chaque execution de celle-ci tu as une nouvelle "instance" de ta variable.
Si tu tiens absolument à faire comme ça, il faut que tu déclares i global ( à l'exterieur de toute fonction).

jedebute75 a écrit :

ça marche pas...ça marche pas.

:fou:  :fou:  :fou:  

Reply

Marsh Posté le 06-04-2006 à 10:28:21    

aaaah, bon je recommence en déclarant ma variable en dehors de la fonction... et je test

Reply

Marsh Posté le 06-04-2006 à 10:32:26    

:-(((( ça marche pas!!! sniiif.  
j'ai déclaré ma variable avant les fonction dans ma partie javascript et rien, à l'evênement onclick, il se passe rien.
merci pour l"info (ça servira de toute façon).
t'as pas une autre idée, ou peut être qu'il faut pas que je fasse comme ça, la fonction de test je suis pas sûr en fait??
 
re HELP

Reply

Marsh Posté le 06-04-2006 à 10:39:19    

Montre le code entier !!! Tu n'as pas une erreur js à l'éxécution?
 

jedebute75 a écrit :

ça marche pas


 :fou:  

Reply

Marsh Posté le 06-04-2006 à 10:45:19    

voilà ma partie javascript :  
<script language="JavaScript">
<!--  
var i =0;
function montre(id) {
if (document.getElementById) {
document.getElementById(id).style.display="block";
} else if (document.all) {
document.all[id].style.display="block";
} else if (document.layers) {
document.layers[id].display="block";
}  
}  
 
function cache(id) {  
if (document.getElementById) {  
document.getElementById(id).style.display="none";  
} else if (document.all) {  
document.all[id].style.display="none";  
} else if (document.layers) {  
document.layers[id].display="none";  
}  
}
 
function test(id) {
if (i=0) { montre(id);
i++;}
else {cache(id);
i=0;}
}
 
//-->
</script>  
 
puis dans l'html :  
<li class="menu" onclick="test('smenu1');"><a href="#">rubrique</a></li>
 
 
en gros c'est un menu déroulant que je souhaite pouvoir ouvrir et fermer en cliquant sur "rubrique". mes fonction "montre" et "cache" marche super bien indépendemment de "test".

Reply

Marsh Posté le 06-04-2006 à 10:46:47    

jedebute75 a écrit :

HELP j'y arrive pas.
 
ondlbclick a priori c que pour javascript 1.2 et plus et puis ça marche pas toute façon et ma fonction non plus sniiif
 
HELP


La notion de "Javascript 1.2" n'a plus tellement de sens actuellement...

Reply

Marsh Posté le 06-04-2006 à 10:46:47   

Reply

Marsh Posté le 06-04-2006 à 10:49:46    

aah ok,je savais pas, merci pour l'info, je n'hésiterai donc pas à utiliser des evênements quel qu'il soit!!!  
n'empêche sur mon scripte ça marche pas!!!

Reply

Marsh Posté le 06-04-2006 à 10:53:51    

quelle horreur, ça c'est largement plus simple

Code :
  1. <script type="text/javascript">
  2. function ShowHide(EltId) {
  3. with(document.getElementById(EltId).style) {
  4.  display=(display=="block" || display=="" ) ? "none" : "block";
  5. }
  6. }
  7. </script>


 
avec le lien qui va avec :  
<a href="#" onclick="ShowHide('elementId'); return false">Recherche avanc&eacute;e </a>
 
sur un lien A j'utilise le return false pour que le href ne soit pas pris en compte.
 
ensuite il faut que ton élément soit écrit de cette manière :  

Code :
  1. <div id="monelement" style="display:none">
  2. texte caché
  3. </div>


malheureusment il faut du style inline et non cacher l'élément par CSS foutue dans le header :/

Reply

Marsh Posté le 06-04-2006 à 10:56:54    

bah ecoute je test de suite, vu que mon truc marche pas :-(((
 
merci merci, te tiens o courant

Reply

Marsh Posté le 06-04-2006 à 11:04:36    

youpiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
géant ton truc, 4 fois moins de code... et ça marche nikel!!!!!
 
suis trop contente MERCI 10000fois

Reply

Marsh Posté le 06-04-2006 à 11:08:49    

on peut meme agrementer le bestiaux pour faire du forcing genre  
 
showHide('id', 's') 's' pour dire show, et h pour dire h

Reply

Marsh Posté le 06-04-2006 à 11:15:09    

ah bon!!! cool! maintenant que j'ai enfin un truc qui tourne, je peux me lacher sur le scripte :-)))))... et tester
 
 
                   *jedebute75 est contente quand ça marche*

Reply

Marsh Posté le 06-04-2006 à 11:31:34    

jedebute75 a écrit :

ah bon!!! cool! maintenant que j'ai enfin un truc qui tourne, je peux me lacher sur le scripte :-)))))... et tester
 
 
                   *jedebute75 est contente quand ça marche*


heu je voulais dire : j'ai pas encore implementé le truc, ca prend 1 minutes en faisant pleins de lignes, mais je veux le faire en 2 lignes

Reply

Marsh Posté le 06-04-2006 à 11:48:53    

ahhh, bah tant pis mais si tu le fais fais moi signe ;-)

Reply

Marsh Posté le 06-04-2006 à 12:12:58    

Code :
  1. <script type="text/javascript">
  2. function ShowHide(EltId,Action) {
  3.     Action = (typeof Action=="undefined" ) ? "" : Action.substring(0,1).toLowerCase();
  4.     with(document.getElementById(EltId).style) {
  5.         display = (Action=="" ) ? (display=="block" || display=="" ) ? "none" : "block" : (Action=="h" ) ? "none" : "block";
  6.     }
  7. }
  8. </script>


 
et pour lancer la fonction c'est ainsi :  
ShowHide('ChampsRecherche'); ==> fait du showhide, c'est a dire, tu cliques, ca cache, tu recliques, ca affiche.
ShowHide('ChampsRecherche','h'); ==> cache le bloc pour de bon
ShowHide('ChampsRecherche','s'); ==> affiche le bloc pour de bon
 
on peut aussi utilser show ou hide :/ a la place de s ou h


Message édité par gatsu35 le 29-04-2006 à 15:07:35
Reply

Marsh Posté le 06-04-2006 à 12:17:34    

coool, je test!!!

Reply

Marsh Posté le 06-04-2006 à 12:25:44    

tu n'as plus qu'à me payer [:petrus75]

Reply

Marsh Posté le 06-04-2006 à 12:32:28    

bah oui t'aurais du me vendre ton beau code qui marche nikel... TROP TARD hé hé hé!!!! ah toi la gloire de filer des scriptes qui marche ;-) en plus avec des codes tout beaux... et toute ma gratitude :-)))))))
MERCI gatsu35

Reply

Marsh Posté le 06-04-2006 à 12:39:49    

vend moi ton corps [:kbchris]

Reply

Marsh Posté le 06-04-2006 à 14:01:06    

MORTE DE RIRE ;-))

Reply

Marsh Posté le 07-04-2006 à 22:51:35    

Code :
  1. if (i=0) { montre(id); i++;}


Là tu mets 0 dans i, puis tu teste si le résultat est non nul, ce qui est toujours faux.
(hum, je sais pas si c est clair...)
 
bref, tu aurait dû écrire:
 
if (i==0) { montre(id); i++;}
 

Reply

Marsh Posté le 07-04-2006 à 23:00:31    

Ah vi c'est vrai, j'avais pas vu, mais bon tu arrives trop tard, la dame à un super script qui fonctionne comme elle le veut et qui est DOM Compliant [:kbchris]

Reply

Marsh Posté le 07-04-2006 à 23:02:22    

:lol: ça me démangeait quand même, hein!

Reply

Marsh Posté le 10-04-2006 à 11:35:53    

aaaah j'arrive en retard... mais c vrais, j'avais pas vu et pourtant quelle erreur grossière hein!!! bon comme dit gatsu j'ai tout ce qu'il me faut maintenant mais ça m'apprendra...  
"jedebute75 devrait apprendre à relire ses scriptes correctement :-((( "

Reply

Marsh Posté le 10-04-2006 à 11:37:25    

nargy a écrit :

:lol: ça me démangeait quand même, hein!


J'aurai aussi du regarder, mais bon ton code était mal pensé dès le départ :/
il fallait jouer sur la valeur du display de l'élément

Reply

Marsh Posté le 10-04-2006 à 11:40:29    

bah oui, m'enfin mon pseudo c pas pour rien, je debute mais j'avance... ;-)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed