2016-12-05 31 views
0

我目前正在尝试从我的html标记 “main”已被我的java脚本代码更新以包含另一个html值后的元素标记中获取值PHP文件。尝试从更新后的标记中获取元素

<main> 
     <?php include 'index.php'; ?> 
    </main> 

    <div id="footer"> 
    </div> 
    </div> 

    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
    <script type="text/javascript" src="homepage_J.js"></script> 
    <!--<script type="text/javascript" src="homepage_A.js"></script>--> 

    </body> 
    </html> 

以上是我的php文件的相关部分,它包含html正文。我的java脚本代码应该更改标签的当前值,然后扫描以获取新加载文件的某些值。

这里是javascript。

$(document).ready(function(){ 

$(window).on('hashchange', function(){ 
    var pageHash = window.location.hash.substring(1); 
    console.log("page hash: "+pageHash); 

    if(pageHash.length==0){ 
     pageHash = "index"; 
     } 

    $('main').load(pageHash + ".php", pageFunctions()); 
    }); 

    $("nav a").on('click', function(event){ 
     event.preventDefault(); 
     var page = $(this).attr("href"); 
     console.log("Loading " + page); 
     window.location.hash = formatForHash(page); 
     $('main').load(page, pageFunctions()); 

    }); 



    $(window).trigger('hashchange',pageFunctions()); 


}); 




function pageFunctions() { 
    var current_page = $("#page").text(); //checks to see which file called the javascript 



     // Switch case that will load appropriate function based on the file loaded(homepage) 
    switch(current_page){ 
     case "INDEX": 
       console.log("HOME loaded"); 
       break; 
     case "INBOX": 
       console.log("INBOX loaded"); 
       break; 
     case "REGISTRATION": 
       console.log("REGIS loaded"); 
       break; 
     case "COMPOSE": 
       compose(); 
       console.log("compose loaded"); 
       break; 
     default: 
       console.log("ERROR IN :" + current_page); 
       break; 
    } 
} 

function formatForHash (page) 
{ 
    var hash = page.split('.'); 
    return hash[0]; 
} 

控制台日志被用来帮助我调试他的代码。而我从中得到的是,javascript是将前一次加载的元素返回到main,而不是当前加载到它的值(即时看到的不是我所得到的)。

so value in var current_page是不是我目前所在的页面。它不相应。所以如果我从索引中离开来构成它的价值就是“索引”,而这种敬畏会给我一个“写作”的价值。

所以我的问题是我将如何获得当前页面上的元素的值,之后或加载之前。

对于冗长的帖子感到抱歉,希望我给了足够的细节。

+1

你需要的是代表 –

回答

1
$('main').load(page, pageFunctions()); 

您正在执行pageFunctions而不是将其作为回调函数。卸下(),以便在装载完成时用作回调。

+0

谢谢你解决了一切。最初我正在调用函数。 – Nevikk