我有以下代码.....
<head>
<script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="Scripts/hidepanel.js" type="text/javascript"></script>
</head>
<body>
<div id="outboundForm">
<p>
<asp:Button ID="btnSubmit" ClientIDMode="Inherit" runat="server" TabIndex="17" CssClass="btnSubmit"
OnClick="btnSubmit_Click" meta:resourcekey="btnSubmitResource1" />
<asp:Button ID="btnReset" runat="server" CssClass="btnReset" OnClick="btnReset_Click"
meta:resourcekey="btnResetResource1" />
</p>
</div>
<div id="MailPreviewDiv">
<asp:Label ID="lblPreview" runat="server" Visible="false" Text="" />
</div>
我的hidepanel.js看起来像这样......
$(document).ready(function () {
d = new Date();
d = d.getTime();
if ($('#reloadValue').val().length == 0) {
$('#reloadValue').val(d);
$('#MailPreviewDiv').
} else {
$('#reloadValue').val('');
}
$('#MainContent_btnSubmit').click(function () {
$('#outboundForm').hide("slow");
$('#MailPreviewDiv').show("slow");
});
});
现在,默认情况下,我希望MailPreviewDiv
隐藏,只有当我点击btn_submit
时才能看到MailPreviewDiv
。这可以用传统的HTML工作,但是只要我将它添加到.NET就会发生疯狂的事情。当我点击提交时,我可以看到转换发生,但随后我仍然显示两个div仍然显示,outboundForm
div仍然可见。
我观察到的是,javascript甚至被解雇,然后我的.net鼠标点击甚至被触发后,我可以看到一个过渡,并留下两个div可见。任何人都可以提供一些建议......
这可能与部分回发事件有关,但我不确定......
答案 0 :(得分:1)
您的页面正在执行回发,因此所有html元素都会立即松开jquery效果。在使用RegisterStartupScript进行回发之后,您需要在服务器端注册js代码 http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx
答案 1 :(得分:0)
也许尝试将outboundForm设置为runat =“server”,并在服务器端设置它的可见性为false。
<div runat="server" id="outboundForm" >
代码隐藏
outboundForm.Visible = false;
似乎JS运行正常,但服务器正在重新加载回发上的隐藏div。
你的JS有一个语法错误$('#MailPreviewDiv')。 &lt; - 不完整
但我认为那是因为你在这里简化发布。