2010-10-24 157 views
0

我使用ajax在div中調用頁面。當頁面打開時,會有一個「關閉」按鈕來隱藏div。點擊關閉按鈕後,我需要刷新頁面重新打開div。 我應該怎樣做才能打開和關閉div而不需要刷新頁面?ajax:如何在使用ajax關閉後重新打開div

代碼:

<script> 
$(document).ready(function(){ 

$('#close').click(function() { 
    $('#show_options').hide(); 
    $(window).unload(function() { alert("Bye now!"); }); 
}); 


}); 

</script> 

<a href="#" id="close">Close</a> <div id="show_options" style="position:absolute;  width:500px; padding:10px; left: 246px; top: 41px; z-index:900;"></div>My selection: <span  id="select-result" style="font-family:Arial, Helvetica, sans-serif;font- size:10pt;color:#444;">leeg</span> </div> 



<a ONClick="xmlhttpPost('selected_output_team.php', 'options', 'show_options'); return   false; " id="show_options"> edit</a> 
+0

如果您將樣式信息放入樣式表中,您的代碼將更容易閱讀,無論是爲了您還是爲我們。 – 2010-10-24 20:55:38

+0

你的意思是隱藏()的相反嗎?即'顯示()'? – lonesomeday 2010-10-24 20:57:00

回答

0

我沒有測試過這一點,但在 「關閉」 錨,試試這個:

<a href="#" id="close" onclick="closeDiv();">Close</a> 
... stuff ... 
<a href="#" id="open" onclick="openDiv();">Open</a> 

一旦你的,就可以了,而不是去除div,只是刪除(和讀取)其內容:

function closeDiv() 
{ 
    document.getElementById("show_options").innerHTML = ""; 
} 
function openDiv() 
{ 
    document.getElementById("show_options").innerHTML = "...whatever..."; 
} 

當然還有其他方式,但這是其中之一。請注意,我沒有測試過這些代碼。

0

使用翻轉(),而不是隱藏()或顯示()

0

我不是專家,但如果你不想隱藏或顯示動畫div標籤,你可以簡單地改變的可視性div標籤使用CSS。你可以有以下功能關閉和打開div標籤:

function close() { 
    document.getElementById("show_options").style.display = "none"; 
} 
function open() { 
    document.getElementById("show_options").style.display = "block"; 
} 

關於CSS好處是,你不必重新生成內容,因此,我認爲它應該工作更快,你的代碼可能會更短。

0

我不太確定我理解你的問題。但是,如果您只是想要關閉鏈接來執行javascript函數,而沒有其他操作,請將「#」替換爲「javascript :;」在鏈接標籤中。有時候,主播可能會給你一些意想不到的行爲。