2014-02-14 80 views
0

我想分开保存我的页面,并使用ajax将它们全部加载到一个主页面中,这样我可以更快地更改我的布局。我使用Metro UI Css。当通过Ajax打开时,页面无法正常工作

问题是,我的网页在单独调用时工作正常,但通过ajax调用并显示在主页面上时,它不响应或抛出任何异常。这是一个加载的页面我的html代码:

<head> 
    <script src="../../app/webroot/js/jquery/jquery.min.js"></script> 
    <script src="../../app/webroot/js/jquery/jquery.widget.min.js"></script> 
    <script src="../../app/webroot/js/prettify/prettify.js"></script> 
    <script src="../../app/webroot/js/load-metro.js"></script> 
</head> 
<body class="metro"> 
<div class="accordion" data-role="accordion" style="font-size:20px; color:#3D5168"> 
    <div class="accordion-frame"> 
     <a class="heading" href="#"><i class="icon-history"></i>Early days</a> 
     <div class="content"> 
      <p>Line 1</p> 
     </div> 
    </div> 
</div> 
</body> 

我怀疑该行

href="#" 

有事情做它,它可能会尝试打电话给原来的页面,它来自,而不是实际显示的页面。我在“调用者”页面上执行所有相同的导入操作,正如我所说的,我没有任何例外。

这是我的加载页面(阿贾克斯)

function LoadPage(PageName) 
    { 
     document.getElementById('LoadedPage').style.visibility='hidden'; 
     document.getElementById('loader').style.visibility='visible' 
     var xmlHttp=MakeConn(); 
      xmlHttp.onreadystatechange = function() 
      { 
       if(xmlHttp.readyState === 4) 
       { 
       HandleLoad(xmlHttp.responseText,PageName); 
       } 
      }; 
      xmlHttp.open("GET", "http://www.somewebsite.com/main/"+PageName, true); 
      xmlHttp.send(null); 
    } 

    function HandleLoad(response,PageName) 
    { 
     if(PageName!='home') 
     { 
      document.getElementById('home').className = 'tile bg-VSblue1'; 
     } 
     if(PageName!='games') 
     { 
      document.getElementById('games').className = 'tile bg-VSblue1'; 
     } 
     if(PageName!='about') 
     { 
      document.getElementById('about').className = 'tile bg-VSblue1'; 
     } 
     if(PageName!='contact') 
     { 
      document.getElementById('contact').className = 'tile bg-VSblue1'; 
     } 
     document.getElementById(PageName).className = 'tile double bg-VSblue1 selected'; 
     document.getElementById('loader').style.visibility='hidden'; 
     document.getElementById('LoadedPage').style.visibility='visible';  
     document.getElementById('LoadedPage').innerHTML = response; 
    } 

有没有人对如何解决这一问题的一些建议吗?谢谢...

+1

我没有看到任何JavaScript或jQuery代码。你如何加载页面? – RononDex

+0

^我们不知道你是怎么做的,所以我们不能告诉你你做错了什么。 – user1596138

+0

能否提供ajax功能 – Merlin

回答

0

发生这种情况是因为在你调用AJAX之后,它没有被初始化,所以我不会工作。要初始化jst,请在将元素放入主体后添加以下行:

$.Metro.initAll(); 

这就是它现在一切都会正常工作。

注意:如果它不尝试'initall'而不是'initAll'