我正在使用 vb.net 创建一个网站。我想要做的不是在页面上有多个表单,只是多个表单,并在单击按钮时隐藏/显示它们,这样实际的 url 不会发生变化,只是显示页面。 所以我使用 vb.net 和 javascript 来实现这一点。
我的 vb.aspx 页面:
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
<script src="Scripts/jquery-1.11.1.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
<!--
function show_ata() {
$('#dmi').hide();
$('#ata').show("slow");
}
function back() {
$('#ata').hide();
$('#dmi').show("slow");
}
// -->
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="BodyContent" runat="server">
<div id="ata" runat="server" >
<p>ATA</p>
<asp:Button runat="server" ID="Button1" OnClientClick="return back()" Text="Back to DMI" CausesValidation="false" />
</div>
<div id="dmi" runat="server">
<p>DMI</p>
<asp:Button runat="server" ID="btnatadetails" OnClientClick="return show_ata()" Text="Go to ATA" CausesValidation="false" />
</div>
</asp:Content>
这就是我的代码,我在.aspx.vb页面上也有一些代码,但它只是与检查用户是否登录有关,与页面显示无关,所以我不会在这里发布它.
我的问题 我的问题是,由于某种原因,单击操作上的按钮仅隐藏给定的 div 1 秒,然后再次显示它,我的目的是隐藏它并保持隐藏状态。
有什么想法我做错了什么吗?
解决方案 你们中的一些人建议我应该将我的 javascript 代码包装在文档就绪函数中,这可能是正确的,但不能解决我的问题。 解决方案是编写用于按钮单击的 vb 代码,如下所示:
Private Sub btnatadetails_Click(sender As Object, e As System.EventArgs) Handles btnatadetails.Click
dmi.Visible = False
ata.Visible = True
End Sub
或者不使用ASP:Button
并使用 html 按钮 <input type=button>
因为asp:button
在服务器上运行,每次点击页面都会重新加载并返回到其原始状态。
谢谢大家的帮助。
最佳答案
click action hides given div only for 1 sec and then shows it again
因为它在文档准备好之前调用,准备好后它显示它是原始的。
解决方案: 将代码包装在准备好的处理程序中:
$(document).ready(function(){
//your code here
});
关于javascript - 在 vb.net 中使用 javascript hide()/show(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25011112/