异步回发后的jquery不工作(jquery not working after async pos

2019-07-30 05:23发布

我使用的UpdatePanel做异步回发。 之后异步回发的jQuery功能不working.I'm使用jQuery要连接上是一个UpdatePanel内HTML表格单元格中的一些鼠标按下了mouseenter效果。 事件绑定在$(文件)。就绪

     <script type="text/javascript">

                $(function ()



     {
    $(".csstablelisttd").mousedown(function (e)
                        {
    //mouse down code
    });
 $(".csstablelisttd").mouseenter(function (e)
                        {
    //mouse entercode
    });
                        $("#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>

                        </ContentTemplate><Triggers>
                            <asp:AsyncPostBackTrigger ControlID="btnFix" EventName="Click" />
                        </Triggers>
                    </asp:UpdatePanel>

Answer 1:

asp:UpdatePanel替代与从服务器返回的结果中的内容。 这意味着所有挂钩事件之前不会后工作后回。

使用jQuery.on()来代替。

例如:

<script type="text/javascript">
$(function () {

    $("#table").on("mousedown mouseenter", ".csstablelisttd", function (e) {
        //mouse down AND mouse enter code
    });

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

注意:如果你按下鼠标和鼠标输入的代码是不同的,他们打出。

做每一个事件钩子,你包括将中存在相同UpdatePanel



Answer 2:

你将不得不添加事件处理程序通过工具包提供AJAX endRequest。 阅读更多在这里

添加在Javascript中块页面加载执行。

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandle);

function endRequestHandle(sender, Args)
{
     alert("After ajax call");
}


文章来源: jquery not working after async postback