0

我正在使用更新面板进行异步回发。在异步回发按钮单击两次之后。我不知道为什么我使用 jQuery 来连接一些鼠标悬停效果在 UpdatePanel 内的元素上。事件绑定在 $(document).ready

    <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>
4

2 回答 2

1

你打body_load了两次电话

这里

 window.onload = body_load;

和这里

Sys.Application.add_init(body_load);

这导致它点击两次

于 2012-07-03T08:00:55.710 回答
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"); });
                }
            }
于 2012-07-03T08:03:02.120 回答