2010-09-16 22 views
1

J'ai construit un site Web basé sur ajax qui utilise le plugin address jquery pour la compatibilité avec le navigateur de boutons. Cependant, comme les pages sont récupérées via la page ajax, l'actualisation de page conventionnelle n'est pas évidente et plutôt désorientante en termes de navigation utilisateur etc. L'utilisateur clique sur un lien, ajax récupère la page, bien que réussie et la page soit récupérée, l'écran ne disparaîtra pas de la page en particulier lorsque la fenêtre est plus longue et le lien cliqué était tout en bas de la page source. Comme si rien n'avait changé. J'ai essayé d'utiliser le plugin scrollTo mais la valeur scrollTop de la fenêtre lors du test est 0 et zéro tout le temps, en supprimant le plugin d'adresse la valeur scrollTop est maintenant lue.Plugin d'adresse jquery interférant avec les valeurs scrollTo

Est-ce que quelqu'un a rencontré le même problème?

Merci d'avance!

Répondre

1

Jetez un oeil à

$.address.wrap(value) 

http://www.asual.com/jquery/address/docs/#api-reference

Ou vous pouvez utiliser le Animer jquery pour faire défiler. Ce que j'ai déjà fait, c'est animer le scroling et ensuite changer le $ .address.value. Comme ceci:

$('a').click(function(e){ 
    e.preventDefault(); 
    var a = $(this); 
    $('html').animate({ scrollTop: 0 }, 100, function() { 
     $.address.value(a.attr('href')); 
    }); 
}); 
+0

salut fehays! celui-là fonctionne un peu mais pas totalement. Aucun scroll n'est animé mais saute simplement à la balise d'ancrage si je force une valeur sur le paramètre a pour obtenir des noms d'ancrage ou des ids exacts. Je ne sais pas quelle valeur exacte mettre sur la balise a car tous mes balises 'a' sont de ce format: href = '# page? Methodcall = aboutus & partnerid = 123' ... alors, quand $ .address.change est appelé les paramètres sont passés à la fonction ajax pour récupérer la page ... (wrap est déjà = 1) alors le défilement ne se produit plus simplement ... espérons que vous pouvez toujours aider, car l'adresse jquery plugin semble être un très bon outil pour moi! Merci ! – jan

+0

cette question n'est toujours pas résolue si quelqu'un là-bas a le même problème s'il vous plaît poster! Merci! – jan

+0

Voir ma modification. Je pense que vous pouvez utiliser preventDefault() – fehays

0

J'ai eu exactement le même problème, essayé plusieurs façons de faire défiler vers le haut et je fini par retirer le rouleau à bouton du haut.

Maintenant, j'ai testé mon site Web avec iphone (en utilisant bootstrap responsive) et j'ai découvert que seul le haut de la page serait affiché et je ne pouvais pas faire défiler du tout.

Les deux problèmes semblent être liés à l'option de retour à la ligne qui fait quelque chose de bizarre à la page.

Ce que je l'ai fait pour y remédier est d'ajouter quelques paramètres supplémentaires lors de l'importation du fichier jquery.address.js dans la page:

<script type="text/javascript" src="/script/jquery-address/jquery.address.js?strict=false&wrap=false"></script> 

avis strict = false & wrap = false

Cela semble fonctionner pour moi :) J'espère que cela aide!