2010-11-23 5 views
0

Je tire des données d'une section d'une page à une autre afin de construire un menu. J'ai besoin de tirer les données dans un élément caché ou une variable comme je me retrouve avec un menu en double. Ma dynamique s'envole et les <ul><li> statiques. Le menu est construit de ceux-ci.JQuery .load() dans un élément variable ou caché

Voici ce que j'ai jusqu'à présent:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('div.ms-quickLaunch').replaceWith('<div id="hierarchy" style="border:solid 1px white; width:0px; visibility:hidden"></div>'); 
    }); 

$(function(){ 
      $('#hierarchy').load('http://wwcshare/icenter/Pages/wwcMenuContent.aspx #menuContent', 
       function(){ 
        $(this).menu({ 
         autoShow: true, 
         content: $(this).html(), 
         backLink: false, 
         crumbDefaultText: ' ' 
        }); 
       });   
      }); 
</script> 

Cela fonctionne, sauf que mon menu n'est plus se placer là où il appartient. Il est en haut de la page plutôt que sur le côté #hierarchy div.


Voici mon ALTERNATE TENTATIVE basé sur une des réponses de:

$(function(){  
      $.get('http://wwcshare/icenter/Pages/wwcMenuContent.aspx', function(data){ // grab content from another page 
       contentIwant = data.find("#menuContent"); 
       $('#hierarchy').menu({ 
        autoShow: true, 
        content: contentIwant, 
        backLink: false, 
        crumbDefaultText: ' ' 
       }); 
      }); 
     }); 

Répondre

5

un .get de $() serait selon vos besoins mieux qu'un .load de $()

utilisant .get $(), vous pouvez traiter les données avant de le charger dans la page

+0

Sauf qu'un '$ .get()' ne peut pas obtenir une partie spécifique d'un site, est-ce correct? –

+0

pas automatiquement, mais c'est un petit obstacle. 'data.find (" # element ")' – generalhenry

+0

ils sont tous les deux des raccourcis pour $ .ajax, $ .load va juste au-delà de ce que vous voulez imho, mieux vaut s'arrêter un pas et passer manuellement la dernière étape. Défaire manuellement une étape est plus difficile. – generalhenry

3

Peu importe si l'élément que vous chargez en est caché ou non. S'il existe dans le DOM, vous pouvez le charger.

Soit assurez-vous que l'élément est caché via CSS premier:

#element{display:none;} 

ou

Masquer l'élément avec jQuery lorsque vous chargez le contenu en elle:

$('#holder').hide().load('mypage.php'); 

Hope this helps Toi, l'ami!

W.