2011-03-29 7 views
0

J'essaie d'exécuter ces deux scripts séparés sur un site. Voici comment ils ressemblent:jQuery conflit - .load et vol stationnaire

<script type="text/javascript"> 
$(document).ready(function() { 

     var name = ""; 

     $(".home-roll-box").hover(function() { 
      name = $(this).attr("id"); 
      $("#image-"+name).stop().show().animate({ opacity: 1 }); 
     }, function() { 
      name = $(this).attr("id"); 
      $("#image-"+name).stop().animate({ opacity: 0 }); 
     }); 
     }); 
</script> 
<!--/Band Images--> 

<!--Navigation--> 
<script type="text/javascript"> 
     $.ajaxSetup ({ cache: false }); 

     $('ul.navigation li a').click(function() { 
     $('ul.navigation li.page_item.current_page_item').removeClass('current_page_item'); 
     $('ul.navigation li.page_item a.active').removeClass('active'); 
     $('#content-wrap').animate({ 
      top: "-2000px" 
     }, 1000); 

      var targetPage = $(this).attr('href'); 
      targetPage += " #content"; 

     setTimeout(function() { 
      $('#content-wrap').load(targetPage, function() { 
       $('#content-wrap').animate({ 
        top: "0px" 
       }, 1000); 
      }); 
     }); 
     $(this).addClass('active'); 
     return false; 
    }); 
</script> 

Ils travaillent tous les deux individuellement, mais pas ensemble. Il semble être le return false; au bas du deuxième script qui cause les problèmes.

+0

'return false;' empêche l'événement click "saignant" à les autres éléments dans la page et empêche également le comportement normal de clic (comme suivre un lien, ou en soumettant un formulaire). Avez-vous vraiment besoin de ce «retour faux»? –

+0

@Richard Neil Ilagan - Merci. Oui, si ce n'est pas le cas, la page se charge normalement (sans l'effet ajax). – Infocentre

+0

Ah, alors vous voulez juste arrêter le clic de suivre réellement dans le lien. Découvrez la réponse @rcravens ci-dessous; Cela devrait marcher pour vous. –

Répondre

0

Essayez d'ajouter un paramètre EVT dans votre gestionnaire de clic, puis appeler

evt.preventDefault(); 

Voici une bonne description des différences: http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

+0

Désolé, @rcravens - vous devrez être plus précis dans le placement du code! – Infocentre

+0

il suffit de lire le lien que vous avez posté. J'ai ajouté dans le 'evt.preventDefault();' et bien que les fonctions '.load' fonctionnent, il semble toujours interférer avec l'autre script ... – Infocentre