Rechercher : dans
Par :

Associer plusieurs actions à "onclick"

Dernière réponse le 17 oct 2007 à 22:11:06 macunaima, le 17 oct 2007 à 20:34:27 
 Signaler ce message aux modérateurs

Bonjour,

Je voudrais associer plusieurs actions à un même événement (onclick) dans un lien hypertexte. Pour clarifier, je voudrais que onclick ouvre une div, mais avant cela, qu'il referme celle qu'il a ouvert précédement, si il en a déjà ouverte une. Est-ce possible, et quelle est la syntaxe que je dois utiliser? Pour l'instant j'ai ceci:

DANS HEAD:
<script type="text/javascript">
<!--
function toggle(eltId)
{
var elt = document.getElementById(eltId);
elt.style.display = (elt.style.display == "block") ? "none" : "block";
}

// -->
</script>
<script type="text/javascript">
<!--
var bloc= 0;
// -->
</script>

DANS BODY:

<a href="javascript:void(0)" onclick="toggle (bloc); toggle('texte_n2 #COMPTEUR_BOUCLE'); bloc='texte_n2 #COMPTEUR_BOUCLE';">bla bla bla </a>

Où:
toggle(bloc) referme la div dont le nom est stoqué dans la var bloc
toggle(''texte_n2 #COMPTEUR_BOUCLE') ouvre la div correspondant au choix du visiteur
bloc='texte_n2 #COMPTEUR_BOUCLE' stoque le nom de la div dans la variable bloc pour le tour suivant.

Eh bien, ça ne marche pas. Où est l'erreur???

Configuration: Mac OS X
Safari 419.3

Meilleures réponses pour « associer plusieurs actions à "onclick" » dans :
Associer une application à une extension de fichiers VoirAfficher toutes les extensions de fichiers Par défaut, Windows XP masque les extensions dont le type est connu. Pour afficher toutes les extensions : Dans le Poste de travail ou l'explorateur Windows, cliquer sur le menu "Outils" et choisir...
Associations de fichiers sous Windows Vista VoirSous Windows XP, l'outil permettant d'associer une extension de fichiers à un programme était accessible via les options de dossiers. Sous Windows Vista, suite à une tempête d'icônes, cette option est accessible via : Panneau de...
MacOS X - Associer un nom à une adresse ip VoirComment associer un nom à une adresse IP sous MacOSX Problèmatique [EDIT] : ceci n'est valable que jusqu'à MacOSX 10.4, PAS pour MacOSX 10.5 (Leopard) MacOSX étant un système BSD, la première chose à laquelle on pense, c'est: "Facile, je vais...
Javascript: les méthodes associées aux objets VoirQu'appelle-t-on une méthode? Une méthode est une fonction associée à un objet, c'est-à-dire une action que l'on peut faire exécuter à un objet. Les méthodes des objets du navigateur sont des fonctions définies à l'avance par les normes HTML, on ne...

1

PhP, le 17 oct 2007 à 21:44:08
  • +3

Bsr

Bien qu'il soit possible de placer plusieurs fonctions les unes à la suite des autres dans le onclick , il est plus propre d'appeller une unique fonction JavaScript de de faire les différents appels depuis cette fonction. Moins il y a de code JavaScript dans le code HTML mieux c'est.

Voici ce que ça peut donner :

<html>
<head>
<style>

.bloc
{
	display : none;
	margin-left : 20px;
}
</style>

<script type="text/javascript"> 
<!-- 

function toggle(eltId) 
{ 
var elt = document.getElementById(eltId); 
elt.style.display = (elt.style.display == "block") ? "none" : "block"; 
} 

// Variable globale stockant l'identifiant du dernier bloc passé à la fonction toggleExclusif
var lastId = null;

function toggleExclusif(eltId)
{
	if (lastId) toggle(lastId);
	toggle(eltId);
	lastId = eltId;
}
// --> 
</script>
</head>
<body>
<p>
<a href="javascript:void(0)" onclick="toggleExclusif('bloc1');">Toggle bloc 1</a>
<div class="bloc" id="bloc1">
Ceci est le bloc 1
</div>
</p>
<p>
<a href="javascript:void(0)" onclick="toggleExclusif('bloc2');">Toggle bloc 2</a>
<div class="bloc" id="bloc2">
Ceci est le bloc 2
</div>
</p>
</body>


Voilà PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...

Répondre à PhP

2

 macunaima, le 17 oct 2007 à 22:11:06

GENIAL, ÇA MARCHE!!! ouf... C'est magique. Merci.

Répondre à macunaima