几秒后自动显示div隐藏?

时间:2013-01-08 04:21:33

标签: jquery asp.net

我有一个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)
        }

2 个答案:

答案 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可帮助您防止特定事件上元素的默认行为,例如单击。因此,回帖不会发生,直到你让它:)