2012-07-03 18 views
0

我正在使用updatepanel进行异步回发。在异步回发按钮被点击两次之后。我不知道为什么我使用jQuery在UpdatePanel中的元素上连接一些mouseover效果。该事件在$(文件)的约束。就绪btn在异步回发后点击两次

<script type="text/javascript"> 
     window.onload = body_load; 
     function body_load() 
     { 
      BindEvents(); 
     } 
     function BindEvents() 
     { 
      $(function() 


{$(".csstablelisttd").mousedown(function (e) 
       {//mouse down code}); 
        $("#contentPlaceHolderMain_btnFix").click(function (e) 
        {alert("Alert");//here alert is generate two times an then postback occurs 
         //btn click code 
        } 
       } 
      } 
     </script> 

<asp:UpdatePanel ID="updatePanelTableAppointment" runat="server"> 
         <ContentTemplate> 
    <table id="table" runat="server"> 
     //table data 
     </table> 

<script type="text/javascript">Sys.Application.add_init(body_load); 
</script> 
        </ContentTemplate><Triggers> 
         <asp:AsyncPostBackTrigger ControlID="btnFix" EventName="Click" /> 
        </Triggers> 
       </asp:UpdatePanel> 

回答

1

您呼叫body_load两次

这里

window.onload = body_load; 

这里

Sys.Application.add_init(body_load); 

这导致其点击两次

+0

我为 –

0

您正在附加事件两次:加载页面时和回发之后。您需要重置处理程序,如果你有改变的事件处理程序

  function BindEvents() 
      { 
       $(function() { 
        $(".csstablelisttd").unbind('mousedown'); 
        $("#contentPlaceHolderMain_btnFix").unbind('click'); 

        $(".csstablelisttd").mousedown(function (e) 
         {//mouse down code});          
        $("#contentPlaceHolderMain_btnFix").click(function (e) 
         {alert("Alert"); }); 
       } 
      } 
+0

做当我使用解除绑定(“点击”),按下鼠标代码是asynpostback后不工作btnclick事件上方; –

+0

您以前也需要解除绑定。答案已更新 – onof