我有这个HTML代码:
function ToggleMenu() {
$('#Menu').fadeOut(500);
}
</script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="Menu">
<a class="MainMenu" href="#" onclick="DoSomething()">Fun</a>
<div id="Dropdown">
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
<li><a href="#">Item 5</a></li>
</ul>
</div>
</div>
<asp:Button ID="Button1" runat='server' Text="Toggle Menu" OnClientClick="ToggleMenu()" />
</form>
</body>
我将OnClientClick
attr用于asp:Button
淡出菜单,但它淡出然后在回发后再次消失,我该怎么办?
答案 0 :(得分:1)
客户端中所做的任何更改都不会自动保留到服务器。由于服务器不知道它被隐藏了,因此它不会对更改做出反应。有一个简单的解决方法。添加隐藏字段:
<asp:HiddenField id="Button1Status" runat="server" />
在隐藏按钮时,添加以下JS代码:
$("#<%= Button1Status.ClientID %>").val("1");
然后在服务器上,在每次回发时,检查隐藏字段是否为“1”,如果是,则设置Visible="false"
或style="display:none"
以便ViewState可以保留此设置。注意:如果您设置Visible="false"
,该按钮将根本不会呈现。
HTH。
答案 1 :(得分:0)
你需要禁用回发。
function ToggleMenu() {
$('#Menu').fadeOut(500);
return false;
}
“return false”将阻止回发。
或者如果你不需要服务器端功能,那么使用简单的html输入元素并分配onclick功能。