Lien hypertexte sans mouvement de page
Posté : 05 août 2009, 15:05
par narcisse
Bonjour,
j'ai une question terriblement bête, je sais que j'ai déjà fait ça par le passé, mais je souhaite créer un hyperlien pour lequel je n'aurai pas de mouvement de page quand je cliquerai dessus.
Exemple : le # me ramène en haut de document.
Je veux être n'importe ou dans la page, cliquer sur le lien, et rester au même endroit.
Petite précision, j'exécute un js en parallèle.
Merci de votre aide.
Re: Lien hypertexte sans mouvement de page
Posté : 05 août 2009, 15:29
par jojolapine
Très simple quand on connait l'stuce

il suffit d'avoir un return false dans ton javascript, soit:
Code : Tout sélectionner
<a href="oerhfgoih" onclick="blablajs();return false">ohreoih</a> //ou encore
<a href="oerhfgoih" onclick="return blablajs();">ohreoih</a> // avec la fonction qui va avec:
function blablajs(){
if(codejs ok){
return false;
}
return true;
}
Comme ça si ta fonction n'as pas marchée, tu peux toujours mettre un href qui va bien dans ton lien pour que la tache soit éxécutée malgrès tout de façon plus traditionnelle

Re: Lien hypertexte sans mouvement de page
Posté : 05 août 2009, 15:36
par narcisse
Merci, c'était ça.
Re: Lien hypertexte sans mouvement de page
Posté : 05 août 2009, 15:39
par jojolapine
Derien

Re: Lien hypertexte sans mouvement de page
Posté : 05 août 2009, 16:47
par Victor BRITO
Très simple quand on connait l'stuce

il suffit d'avoir un return false dans ton javascript, soit:
Code : Tout sélectionner
<a href="oerhfgoih" onclick="blablajs();return false">ohreoih</a> //ou encore
<a href="oerhfgoih" onclick="return blablajs();">ohreoih</a> // avec la fonction qui va avec:
function blablajs(){
if(codejs ok){
return false;
}
return true;
}
Comme ça si ta fonction n'as pas marchée, tu peux toujours mettre un href qui va bien dans ton lien pour que la tache soit éxécutée malgrès tout de façon plus traditionnelle

On peut même améliorer le code de cette gestion d'événement :
(X)HTML
JavaScript
Code : Tout sélectionner
function fnSansMouvement ()
{
if (!document.getElementById) return;
var oBlablajs = document.getElementById ('blablajs');
if (oBlablajs.addEventListener) oBlablajs.addEventListener ('click', fnBlablajs, false);
else if (oBlablajs.attachEvent) oBlablajs.attachEvent ('onclick', fnBlablajs); // Pour IE
}
function fnBlablajs (event)
{
// Diverses instructions
// Un return false conforme au DOM actuel
if (event.preventDefault) event.preventDefault ();
else event.returnValue = false; // Pour IE
}
// Chargement du script au chargement de la page
if (window.addEventListener) window.addEventListener ('load', fnSansMouvement, false);
else if (window.attachEvent) window.attachEvent ('onload', fnSansMouvement); // Pour IE
Autrement, cette amélioration de code permet de faire du JavaScript non intrusif, qui facilite la maintenance du code (X)HTML (d'autant plus qu'il n'y a pas un seul attribut on+événement d'ajouté).

Re: Lien hypertexte sans mouvement de page
Posté : 05 août 2009, 16:57
par jojolapine
Je suis tout à fait d'accord avec toi victor, mais si on pousse aussi loins, autant utiliser des librairies javascript (jquery ...) c'est moins lourd à coder...
(X)html:
Js:
Code : Tout sélectionner
$(document).load(){function(){
$('#lienJS').click(function(){
//code js
return false;
});
});
Après c'est les gouts et les couleurs, mais au moins, on ne s'occupe plus ou presque de la compatibilité...
