2014-02-14 81 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'