2012-02-15 200 views
0

聲明:我對這個東西很新,所以請記住這一點。刷新JavaScript無刷新頁面

你好,

進出口設置使用AJAX加載網頁內容的網站,而不必離開頁面。我有幾個使用JavaScript加載列表信息的頁面。

這裏是鏈接設置如下:

#home 
#list.php?list=$list_id 

我有一個變量,名爲$ LIST_ID,使用與一些JavaScript加載列表。我面臨的問題是,如果我加載一個列表(讓我們說ID 1的列表),然後返回並加載另一個列表(讓我們說ID 2的列表)的JavaScript沒有重新加載到帳戶的新列表ID。

有無論如何我可以重新加載JavaScript代碼來說明新變量而不必刷新頁面?

謝謝!

+0

請向我們展示完整的代碼,以便我們提供幫助。 「回去」(在瀏覽器中)是什麼意思? – JMax 2012-02-15 08:27:00

回答

0

你不能將$ list_id存儲在隱藏的輸入字段中,然後在ajax調用後更新它嗎?

例如

<input type="hidden" id="list-id" value="<?php echo $list_id; ?>" /> 

    <script> 
    //ajax request 
    var $list_id = $('#list-id'); 
    $.ajax({ 
    url:'http://www.example.com/page.php', 
    data:'list_id=' + $list_id.val(), 
    success:function(data){ 
    //do something 

    $list_id.val() = $list_id.val() + 1; 
} 
}); 

只是拼湊了一起迅速給你一個想法,所以可能有一些JS錯誤

4

我不明白你所面對的問題完全一樣。 但如果你想重新加載腳本而無需刷新頁面,你可以這樣做:

var script = document.createElement("script"); 
script.type = "text/javascript"; 
script.src = "somefile.js"; 
document.getElementsByTagName("head")[0].appendChild(script); 

或使用jQuery.loadScript功能

+0

如何在頁面內執行此腳本。例如。請記住,我在頁面中使用JS,因爲我在JS中使用了php變量。 – user1210772 2012-02-15 09:12:47

0

您可以使用jQuery的getScript()功能獲得(和執行)的腳本動態。例如:

$.getScript("/js/myscript.js"); 
+0

該腳本不在外部文件中。我在php文件中使用

1

將HTML插入DOM腳本時執行。因此,當您通過AJAX加載一些HTML時,您可以執行包含的腳本。

0

通常,這裏最好設計一個協議。您應該有一個函數來解析所有正在加載的「列表」,一個解析URL哈希的函數和一個函數來加載新列表。您可以通過location.hash獲得URL哈希值。

下面是一個簡單的例子,期望列表是一個特定的格式。所以它會是基於協議的,因爲在Javascript中只需要加載一次,並且它應該期望某種特定的格式,它可以在沒有任何附加依賴的情況下進行解析。實際上需要依賴關係是可以的,但是應該如何/何時/何地應該在協議中工作。

<a class="listLoader" href="#list.php?list=1">List 1</a> 
<a class="listLoader" href="#list.php?list=2">List 2</a> 
<a class="listLoader" href="#list.php?list=3">List 3</a> 

$('.listLoader').onclick(function() { 
    $.ajax({ 
     'success': function() { 
      //Do what you gotta do with your lists 
     }, 
     'url': location.hash.substring(1) 
    }); 
});