0

updatepanelを使用して非同期ポストバックを実行しています。非同期ポストバックボタンが2回クリックされた後、UpdatePanel内にある要素にマウスオーバー効果を接続するためにjQueryを使用している理由がわかりません。イベントは$(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あなたは2回電話しています

ここ

 window.onload = body_load;

そしてここ

Sys.Application.add_init(body_load);

2回クリックする原因になります

于 2012-07-03T08:00:55.710 に答える
0

ページの読み込み時とポストバック後の2回イベントを添付しています。イベントハンドラーを変更する必要がある場合は、ハンドラーをリセットする必要があります

            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 に答える