2010-10-09 25 views
0

Je suis un peu novice, alors excusez-moi si ce script est rudimentaire. J'essaie d'utiliser la fonction .load() de jQuery pour charger le mois suivant ou précédent d'un calendrier d'événements sur un site d'expression que j'ai construit. Le script suivant fonctionne dans Chrome, Safari, IE et Firefox 4 bêta, mais il échoue dans FF 3.6.10:La fonction jQuery .load() échoue dans firefox 3.6.10

$('th a.right, th a.left, th a.center').click(function() { 
     var navMonth = $(this).attr("title"); 
     $('#calendar').html('<p style="padding: 102px 120px;"><img src="http://dashboardco-op.org/images/infra/ajax-loader.gif" /></p>'); 
     $('#calendar').load(navMonth); 

}); 

Et voici le code html:

   <th colspan="1"><a id="mc_prev_month" class="icon left" title="{path='live/calendar'}{prev_month format="%Y/%m"}/">&larr;</a></th> 
       <th colspan="5"><a class="center" title="{path='live/calendar'}{next_month format="%Y/%m"}/">{month format="%F %Y"}</a></th> 
       <th colspan="1"><a id="mc_next_month" class="icon right" title="{path='live/calendar'}{next_month format="%Y/%m"}/">&rarr;</a></th> 

J'utilise le ' attribut 'title', car .load() n'écrase pas 'href' - les pages sont donc chargées dans une nouvelle page plutôt que de manière asynchrone.

Merci.

+3

Avez-vous essayé d'utiliser Firebug et vérifié le panneau réseau? – Mottie

+1

Que voulez-vous dire par échoue? Ne fait rien? Quelle erreur lance-t-elle? –

Répondre

0

Je ne sais pas pourquoi cela pourrait poser un problème avec un navigateur en particulier, mais je pense qu'il existe une façon un peu plus propre de faire ce que vous voulez. Jetez un oeil à cette fonction dans jQuery pour annuler l'ouverture d'une nouvelle page sur l'ancre cliquez: preventDefault()

Avec cela, vous pouvez mettre le chemin dans l'étiquette href, si pour aucune autre raison, il ferait probablement le balisage l'air plus propre. A part ça, les seules autres choses qui viennent à l'esprit sont peut-être que l'ancre a besoin de l'attribut href (je ne pense pas que ce soit le cas?) Ou peut-être que FF 3.6 gère l'attribut title différemment?

+0

ou simplement 'return false;' sur le gestionnaire de clic. +1 sur l'utilisation de l'attribut 'href' car cela aidera à la dégradation gracieuse. – Phil

+0

d'oh! @Phil Brown retourne false; est certainement le moyen d'y aller, pas besoin de trop compliquer – 2bsharpdev