【发布时间】:2017-09-02 00:12:14
【问题描述】:
我有一个侧边栏 div,我想在页面加载时隐藏它。我尝试使用分页器中的注册启动脚本调用 JS 函数,并添加“style="display:none;"”。我目前有一个相同的 JS 调用,但在控件单击时,它工作正常......但我希望 div 最初是隐藏的。
编辑:使用预渲染在本地主机上工作,但不在服务器上......
.aspx:
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
Code...
</asp:UpdatePanel>
</div>
JS:
function openNav() {
document.getElementById("mySidenav").style.width = "250px";
document.getElementById("main").style.marginLeft = "250px";
}
function closeNav() {
document.getElementById("mySidenav").style.width = "0";
document.getElementById("main").style.marginLeft = "0";
document.body.style.backgroundColor = "white";
}
codebehind.vb:
Private Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "InitializePage", "InitializePage();", True)
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "closeNav", "closeNav();", True)
End Sub
你知道我可以在页面加载时隐藏这个 div/关闭它吗?
【问题讨论】:
-
为什么需要服务器端代码参与?
-
@mason 如果可以的话,我想避免这样做。我比较新……
-
在不需要的时候涉及服务器是一种浪费。
<script>(function() { closeNav(); })();</script>将其放入您的页面将在页面完成加载 DOM 时调用该函数。见this question。 -
@mason 喜欢这样吗? $(document).ready(function () { closeNav();});
-
啊,你有 jQuery 吗?是的,这会起作用,但你可以让它更短。
$(function() { closeNav(); });。我假设您没有 jQuery,因为您使用的是document.getElementById('id')而不是$("#id")
标签: javascript jquery css asp.net vb.net