2010-11-23 24 views
0

我正在将数据从一个页面的某个部分拖入另一个页面以构建菜单。我需要将数据提取到一个隐藏的元素或变量中,因为现在我最终得到了一个重复的菜单。我的动态飞行和静态<ul><li>的。菜单是由这些建立的。将JQuery .load()转换为变量或隐藏元素

这是我到目前为止有:

<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> 

这工作,只是我的菜单不再得到放在属于它的地方。它位于页面的顶部,而不是在#hierarchy div的旁边。


下面是根据答案的我的一个备用尝试:

$(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: ' ' 
       }); 
      }); 
     }); 

回答

5

一个$获得()会适合您的目的,而不是一个$ .load()更好

使用$获得(),您可以加载到

页面之前处理数据
+0

除了`$ .get()`不能获取站点的特定部分,是否正确? – 2010-11-23 20:19:09

3

不要紧,要装载到的元素是否隐藏或不。如果它存在于DOM中,那么你可以加载它。

要么确保元素通过CSS第一隐藏:

#element{display:none;} 

隐藏使用jQuery的元素时,你的内容加载到它:

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

希望这有助于你这个人!

W.