2010-04-22 3 views
1

J'utilise prototype pour construire une requête ajax à partir d'un onclick en ligne sur un lien. La fonction affiche un élément sur la page et tout fonctionne correctement, sauf que la barre de défilement du navigateur se réinitialise en haut après chaque clic du lien. C'est mauvais b/c parfois le contenu que je veux montrer est partiellement défilé vers le bas de la page et cela fait en sorte que l'utilisateur ne peut pas le voir. Je me rends compte qu'il est préférable de ne pas inclure l'onclick inline, mais j'ai une situation où je crée dynamiquement ces liens et puis cache le html afin qu'il soit plus rapide de cette façon. Y at-il un moyen d'annuler cette réinitialisation de défilement du navigateur en utilisant un onclick en ligne? C'est ce que mon code ressemble à:Annuler Navigateur Défiler Réinitialiser pour Inline Onclick

<a href="#" rel="nofollow" onclick="linkAjax('example')" id="word_link_example">example</a> 

function linkAjax(word){ 
    if(!making_ajax_request){ 
    making_ajax_request = true; 
    new Ajax.Request('/example/test', 
    {parameters:{data: word}, 
     onLoading: function(){searchLoading();}, 
     onComplete: function(){ 
     making_ajax_request = false; 
     } 
    }); 
    } else { } 
} 

Répondre

1

Votre onclick a besoin de retourner faux pour arrêter le navigateur de recharger la page (résultant en défilement vers le haut). Essayez:

<a href="#" rel="nofollow" onclick="linkAjax('example'); return false;" id="word_link_example">example</a> 
0

Faites ceci: onclick = "linkAjax ('exemple') return false"

Questions connexes