2009-11-29 5 views
0

Je travaille sur un site Web d'une page qui permet aux utilisateurs d'ajouter et de supprimer des pages à partir de là navigation comme et quand ils le voudraient aussi, la façon dont cela fonctionne est que si le clic ' Blog sur la navigation principale une section 'Blog' devrait apparaître sur la page, s'ils cliquent alors sur 'News' la section 'News' devrait aussi être visible, cependant la façon dont j'ai commencé à implémenter cela semble que je ne peux en avoir qu'une section à la fois, mon code peut être adapté pour permettre à plusieurs sections d'apparaître sur la page principale.Problème avec mon Jquery chargement dans mes vues Codeigniter

Voici mon code pour la page qui contient le menu principal et les sélections des utilisateurs.

<!DOCTYPE html> 
<head> 
    <title>Development Site</title> 
    <link rel="stylesheet" href="/media/css/reset.css" media="screen"/> 
    <link rel="stylesheet" href="/media/css/generic.css" media="screen"/> 
    <script type="text/javascript" src="/media/javascript/jquery-ui/js/jquery.js"></script> 
    <script type="text/javascript" src="/media/javascript/jquery-ui/development-bundle/ui/ui.core.js"></script> 
    <script type="text/javascript" src="/media/javascript/jquery-ui/development-bundle/ui/ui.accordion.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
      $('a.menuitem').click(function() { 
       var link = $(this), url = link.attr("href"); 
        $("#content_pane").load(url); 
        return false; // prevent default link-behavior 
      }); 
    }); 
     </script> 
    </head> 
    <body> 
     <li><a class="menuitem" href="inspiration">Inspiration</a></li> 
     <li><a class="menuitem" href="blog">Blog</a></li> 
     <div id="content_pane"> 

     </div> 
    </body> 
    </html> 

Répondre

0

Vous devriez essayer quelque chose comme ça

$('a.menuitem').click(function() { 
        var link = $(this), url = link.attr("href"); 
         var $newDiv = '<div></div>'; 
         $("#content_pane").append($newDiv); 
         $newDiv.load(url); 
         return false; // prevent default link-behavior 
      }); 

Je nai comparé ce mais il devrait fonctionner. Si vous pouvez s'il vous plaît signaler votre résultat.

Sinon, vous pouvez créer une variable qui stocke du contenu chargé, l'envelopper dans un élément div et ajoutez élément créé à l'#content_pane

+0

Il semble à mi-travail, L'affichage du contenu sur la page Je le veux pendant environ 1 seconde, puis navigue simplement vers la page elle-même. – Udders

+0

avez-vous essayé d'accepter le contenu chargé dans une variable et l'envelopper dans un div? – Mike

+0

C'est proche, mais ce que le $ avant nouveauDiv? Inutile n'est-ce pas? – Zack

0

Miser sur ce que Mike a mis .. faire:

$('a.menuitem').click(function(e) { 
        var link = $(this), url = link.attr("href"); 
         var $newDiv = '<div></div>'; 
         $("#content_pane").append($newDiv); 
         $newDiv.load(url); 
         e.preventDefault; // prevent default link-behavior 
      }); 

Le e.preventDefault(); va arrêter l'action par défaut de se produire. Ensuite, il ne devrait pas suivre le lien. Return False est généralement utilisé dans la fonction .submit(). Vous aurez besoin de .preventDefault pour le .click().