2013-08-24 113 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?