jquery + asp.net задержка обратной передачи - PullRequest
1 голос
/ 06 декабря 2011

Я хотел бы реализовать эффект slideUp jQuery при нажатии LinkButton, а затем выполнить обратную передачу на странице. Эффект занимает 600 мс для достижения. Проблема, с которой я сталкиваюсь, заключается в том, что до того, как эффект jQuery завершает, страница уже выполняет обратную передачу, поэтому сценарий jQuery останавливается где-то на полпути. Есть ли способ отложить обратную передачу, кроме ручной обратной передачи?

Ответы [ 3 ]

3 голосов
/ 06 декабря 2011

Возможно предоставить функцию для сдвига, которая будет выполняться только тогда, когда скольжение выполнено:

formDiv.slideUp('normal', function () {
    $(form).submit();
  });
0 голосов
/ 12 января 2017

Вы можете заблокировать событие PostBack с помощью return false.Затем вызовите кнопку PostBack кнопки вручную, вызвав __doPostBack с правильным именем LinkButton, указав UniqueID.

<script type="text/javascript">
    function myFunction() {
        //do stuff
        setTimeout(function () { delayedPostBack(); }, 1000);
    }

    function delayedPostBack() {
        __doPostBack('<%= LinkButton1.UniqueID %>', '');
    }
</script>

<asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="myFunction(); return false;" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
0 голосов
/ 06 декабря 2011

Вы можете поместить вызов для загрузки / перезагрузки страницы в функцию обратного вызова анимации slideUp.

Что-то вроде:

$("#myElement").click(function() {
    $("#otherElement").slideUp(600, function() {
        // $("#form").submit(); // or
        // window.location.assign("mypage.aspx");
    });
})

Если бы вы могли опубликовать свой код, я могу показать вам более подробно.

...