2010-10-24 118 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 :;”在链接标签中。有时候,主播可能会给你一些意想不到的行为。