Réponse acceptée !
Bonjour,
Dans la pratique si une action est faite sur un événement d'un lien, à l'issue de cette action, l'action par défaut prévue, chargement de
HREF dans le cas d'un lien, est effectué sauf si l'action est annulé par un retour
false.
Code HTML :
<a href="page.html" onclick="alert( this.href);">lien</a>
affichera la page page.html après affichage de l'alert
Code HTML :
<a href="page.html" onclick="alert( this.href);return false">lien</a>
affichera l'
alert puis revient au document.
Dans la mesure ou l'on change la
location.search, le navigateur charge la nouvelle page indiquée.
Cas sans return false :
Après exécution des instructions misent sur l'événement, retour pour exécution de l'action par défaut.
Si tu mets un
alert(''), suivant le navigateur, la page sera chargée ou en attente, apparemment
- FireFox -> Charge
- IExplorer -> mets en attente
Si la page est chargée l'action par défaut ne peut pas se réaliser le document initial n'existant plus, on retourne where, on fait quoi?.
Dans le cas contraire on retourne à l'action par défaut pour l'exécuter.
Cas avec return false :
l'action par défaut ne sera en aucun cas pris en compte.
Il te faut donc un
return false dans ta fonction événementielle.
ci joint un petit fichier pour test
Code Javascript :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>avec ou sans return</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//-- affichage pour visualisation
if( window.location.search){
document.write( "<h1>" +window.location.search +"</h1>");
}
</script>
<script type="text/javascript" src = "jquery-1.4.2.min.js"></script>
</head>
<body>
<div id="id">
<a href="page.html">Envoi</a>
</div>
<br><a href ="page.html" onclick = "alert( this.href);">pas de return false</a>
<br><a href ="page.html" onclick = "alert( this.href); return false">avec return false</a>
<script type="text/javascript">
$('#id a').click(function(){
var para =10;
var url = "?id=1&newPara=" +para;
window.location.search = url;
alert( 'Affichage\n' +url);
return( false); //-- ICI mets en commentaire ou non
})
</script>
</body>
</html>à vos tests prêt partez...
;O)