jquery не работает после асинхронной обратной передачи



Я делаю асинхронную обратную передачу с помощью updatepanel. после асинхронной обратной передачи функциональность jQuery не работает.Я использую jQuery для подключения некоторых эффектов mousedown mouseenter к ячейкам таблицы html, которые находятся внутри UpdatePanel. События связаны в $(документ).готов



     <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>
591   2  

2 ответов:

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.

Вам придется добавить обработчик событий для ajax endRequest, предоставляемый Toolkit. Читайте дальше здесь

Добавьте в Javascript блок, который выполняется при загрузке страницы.

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

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

Comments

    Ничего не найдено.