18041 sujets
Questions générales et questions de débutants
Salut,
Pour faire une ancre, je te conseille de regarder la FAQ.
et pour affecter un gestionnaire d'événement (une fonction) au clic sur le lien, il vaut mieux le faire comme suit :
Pour faire une ancre, je te conseille de regarder la FAQ.
et pour affecter un gestionnaire d'événement (une fonction) au clic sur le lien, il vaut mieux le faire comme suit :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Exemple</title>
<script type="text/javascript"><!--
var Script = function() {};
var sp = Script.prototype =
{
connect: function(oElem, sEvType, fn, bCapture)
{
return document.addEventListener ?
oElem.addEventListener(sEvType, fn, bCapture):
oElem.attachEvent ?
oElem.attachEvent('on' + sEvType, fn):
false;
},
alert: function()
{
alert(this.firstChild.nodeValue);
},
init: function()
{
return sp.connect(
window,
'load',
function()
{
[#blue]var oA = document.getElementById('alert');
oA.onclick = sp.alert;[/#]
},
false
);
}
};
var alertOnClick = new sp.init;
//--></script>
</head>
<body>
<p><a href="#" id="access" name="access"></a></p>
<div>...</div>
<p><a href="#access" id="alert">Accès</a></p>
</body>
</html>
Ici, une alerte se déclenche au clic sur le lien et comme on n'empêche pas la transmission de l'url par un return false dans le gestionnaire d'événement, on se reporte à l'ancre. Il est donc inutile de se servir de focus().J'ai simplifié comparé à ce que je fais d'habitude mais pas assez pour ta question, il est vrai.
Si le js est déporté hors de la balise, c'est pour simplifier la maintenance et si je ne me suis pas servi d'un simple onload pour charger le script, c'est pour t'éviter des problèmes (conflits entre différents scripts).
Mis à part le modèle objet (je code toujours ainsi), tout cela a une raison d'être malgré cette apparente complexité.
Ces notions sont expliquées dans les tutos JS du site si tu veux plus d'informations.
Modifié par koala64 (11 Oct 2007 - 16:39)
Si le js est déporté hors de la balise, c'est pour simplifier la maintenance et si je ne me suis pas servi d'un simple onload pour charger le script, c'est pour t'éviter des problèmes (conflits entre différents scripts).
Mis à part le modèle objet (je code toujours ainsi), tout cela a une raison d'être malgré cette apparente complexité.
Ces notions sont expliquées dans les tutos JS du site si tu veux plus d'informations.
Modifié par koala64 (11 Oct 2007 - 16:39)