2012-05-24 40 views
0

這個問題可能有點誤導,因爲我不想知道如何在div中打開html文檔,但我問了這個問題,因爲我目前面臨的一個問題是,我無法替換HTML文件已經放置在一個div如何在html div中打開html頁面?

我已經放在一個html文件中一個div使用AJAX是這樣的:

$.ajax({ 
     url: 'calender.aspx',//this is html.aspx file 
     cache: false, 
     dataType: "html", 
     success: function (data) { 
      $(".mainBar").html(data);//mainBar is the div 
     } 
    }); 

該文件被放置在頁面加載時即的document.ready功能,到這裏一切都很好.....我的麻煩開始時,我想要替換文件,我做的是調用一個JavaScript函數說replaceFile()上的按鈕單擊並編寫相同的代碼來替換文件(當然更改url)

這樣

function replaceFile() 
{ 
$.ajax({ 
     url: 'Another.aspx', 
     cache: false, 
     dataType: "html", 
     success: function (data) { 
      $(".mainBar").html(data); 
     } 
    }); 
} 

但這不起作用,請幫助我!

+1

假設'another.aspx'文件存在沒有理由你有什麼不應該工作。值得注意的是,你在做什麼可以用'$(「。mainBar」)來實現。load(「calender.aspx」);'。你看到控制檯中有任何錯誤嗎? –

+0

不,我沒有看到在控制檯中的任何錯誤,但div內容沒有改變 – Snedden27

+0

我會打開螢火蟲,並在你的JS粘貼斷點來測試a)如果replaceFile()被調用在所有,和b)如果成功函數被調用。 – Ben

回答

0

我想你的綁定不起作用,當你嘗試點擊你通過ajax加載的內容。所以,你可能想的onclick結合從

$("#someButtonId").click(function(){ 
    replaceFile(); 
}); 

改變

$(document).on("click","#someButtonId",function(){ 
    replaceFile(); 
}); 

的jQuery與當前和未來元素的作品。

+0

我試圖用這種方式調用函數,它不會;當我識別按鈕ID時在瀏覽器控制檯中檢查我無法看到按鈕,因爲它是一個手風琴的子菜單,我使用jQuery的手風琴,它只給出了span類而不是單獨的子菜單按鈕..我可以訪問該特定的ID子菜單按鈕? – Snedden27

+0

使用類選擇器而不是ID選擇。使用像'$(「。yourClassName」)...' – Shyju

+0

是啊我得到了id,但仍然不知道爲什麼不加載文件 – Snedden27

0

使用此功能,您將網頁加載到元素命名結果

.load(網址,數據,完整(responseText的,textStatus,XMLHttpRequest的)])

function replaceFile(url) 
{ 
    $('#result').load(url, function() { 
    alert('Load was performed.'); 
    }); 
} 

replaceFile('htmlfile.html'); 
+0

沒有人不工作 – Snedden27

0

您可以加載此Firebug並在$(".mainBar").html(data);處設置一個斷點以確保它被調用。您沒有失敗處理程序,因此它可能實際上正在接收HTTP失敗代碼,而不是成功代碼。

我也看看網絡選項卡下的網絡流量,看看請求/響應的樣子。這是查找大多數AJAX調用真正發生的簡單方法。 IE9有類似的開發工具,如果你想使用它而不是Firefox或Chrome。

+0

你的意思是mozilla brwser console嗎? – Snedden27