2013-08-24 116 views
2

我的主题是显示一个显示消息“已成功保存”的div,并在2秒后自动隐藏。
我已经完成了几乎所有的事情,所有的工作都很好,但仅限于第一次点击。在第二次点击时,它只显示DIV消息enter code here“Saved Successfully ..”,但不执行查询。 我在互联网上搜索了很多,但没有发现任何用途。我的代码是:Jquery Click事件不会在UpdatePanel第二次触发

<script type='text/javascript' src='http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js'> 
    </script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     var prm = Sys.WebForms.PageRequestManager.getInstance(); 
     prm.add_endRequest(function() { // re-bind your jquery events here 
      $("#btn_Save").click(function (e) { 
      e.preventDefault(); 
      $('#showMessage').fadeIn(100); 
      setTimeout(function() { $('#showMessage').fadeOut(500); }, 2000); 
      }) 
     }) 
    }) 
    </script 

>

<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
      <ContentTemplate> 
       <div id="msg" style="display:none" ><p>Saved Successfully...</p></div>           <div> 
     <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>   
     </div 
      <div id="showMessage" style="display:none;"><p>Saved Successfully...</p> </div> 
      </ContentTemplate> 
       <Triggers > 
        <%--<asp:AsyncPostBackTrigger ControlID="Button1" />--%> 
       </Triggers> 
     </asp:UpdatePanel> 
</form> 

protected void btn_Save_Click(object sender, EventArgs e) 
{ 
    //Query to save data into database 

} 
+0

能成为一个时间问题你可以改变你的代码:$('#showMessage')。fadeIn('slow',function(){ setTime out(function(){$('#showMessage')。fadeOut(500); },2000); }) –

回答

0

绑定事件最初的document.ready并重新绑定外:

<script type="text/javascript"> 
    $(document).ready(function() { 
      $("#btn_Save").click(function (e) { 
      e.preventDefault(); 
      $('#showMessage').fadeIn(100); 
      setTimeout(function() { $('#showMessage').fadeOut(500); }, 2000); 
      }) 

    }) 

    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_endRequest(function() { // re-bind your jquery events here 
     $("#btn_Save").click(function (e) { 
     e.preventDefault(); 
     $('#showMessage').fadeIn(100); 
     setTimeout(function() { $('#showMessage').fadeOut(500); }, 2000); 
     }) 
    }) 

</script> 

这篇文章可能会有帮助:jQuery $(document).ready and UpdatePanels?