我有一个div显示:none。按下按钮我想用jquery显示它。它显示但只是在一两秒内它会自动隐藏。
我不是专家,也无法找到我做错的地方。请帮帮我。
<asp:Button runat="server" ID="btnCVUpload" Text="Upload" OnClientClick="CVConfirm()" /> <div id="divConfirmCV" style="border: dashed 2px black; background: gray; display:none;">
A profile can have only one CV, uploading this CV will remove an existing CV. Click
"Yes" to proceed
<asp:Button runat="server" ID="btnCVYes" Text="Yes" />
<asp:Button runat="server" ID="btnCVNo" OnClientClick="HideCVConfirm" Text="NO" />
</div>
function CVConfirm() {
$("#divConfirmCV").css("display","block").show(1000)
}
答案 0 :(得分:5)
它再次隐藏,因为页面正在回发到服务器,并且您再次获得了一个全新的页面,其中隐藏了按钮的初始状态。您要么a)在页面回发之前不显示div,在这种情况下,您可以将div设为asp:panel或类似的东西,并在按钮单击时将其设置为Visible。或者b)你不想使用asp:Button,而是一个不会回发到服务器的常规<input type=button>
,如果你只是想显示div而不再次点击服务器。我会说你的代码看起来你真的想用选项b。所以,你的代码就是:
<input type=button ID="btnCVUpload" value="Upload" onclick="CVConfirm()" />
当然,你正在使用jquery,所以你应该这样做:
<input type=button ID="btnCVUpload" value="Upload" />
<script>
$(function(){
$("#btnCVUpload").click(function(){
$("#divConfirmCV").css("display","block").show(1000);
});
});
</script>
答案 1 :(得分:1)
我想像这样编写我的jQuery
$(document).ready(function(){
$("#<%=btnCVUpload.ClientID%>").click(function(event){
event.preventDefault();
$("#divConfirmCV").css("display","block").show(1000);
});
});
preventDefault可帮助您防止特定事件上元素的默认行为,例如单击。因此,回帖不会发生,直到你让它:)