Асинхронный обратный вызов в jquery

0

Я новичок в jQuery, поэтому, пожалуйста, несите меня.

Я изо всех сил пытаюсь сделать следующее, чтобы называться по очереди

    gvUsers.PerformCallback();  // 1 --> Perform call back (DevExpress grid)

    $("#frmUser").submit();   // 2 --> Submit form for processing

    var mainElement = gvUsers.GetMainElement();
    var x = ASPxClientUtils.GetAbsoluteX(mainElement) + (gvUsers.GetWidth() - 500) / 2;
    var y = ASPxClientUtils.GetAbsoluteY(mainElement) + (gvUsers.GetHeight() - 200) / 2;

    reminderPopup.ShowAtPos(x, y); // 3 --> Show popup after processing

Что я пробовал до сих пор?

(1) Механизм обратного вызова jQuery

    gvUsers.PerformCallback(function () // 1 --> Perform call back for passing selected keys
        {
            $("#frmUser").submit(function () // 2 --> Submit form for processing
            {
                var mainElement = gvUsers.GetMainElement();
                var x = ASPxClientUtils.GetAbsoluteX(mainElement) + (gvUsers.GetWidth() - 500) / 2;
                var y = ASPxClientUtils.GetAbsoluteY(mainElement) + (gvUsers.GetHeight() - 200) / 2;

                reminderPopup.ShowAtPos(x, y); // 3 --> Show popup with submitted data
            });
        });

И не удалось заставить его работать.

(2) Цепочка, когда и затем

$.when(gvUsers.PerformCallback()).then($("#frmUser").submit()).then(function(){var mainElement = gvUsers.GetMainElement();
            var x = ASPxClientUtils.GetAbsoluteX(mainElement) + (gvUsers.GetWidth() - 500) / 2;
            var y = ASPxClientUtils.GetAbsoluteY(mainElement) + (gvUsers.GetHeight() - 200) / 2;

            reminderPopup.ShowAtPos(x, y);
        });

Снова потерпел неудачу.

Можете ли вы направить меня, чтобы выполнить эти три шага один за другим в последовательности?

Теги:

1 ответ

0

В вашем первом подходе функция, которую вы передаете в submit, будет вызываться немедленно, это не будет успешным обратным вызовом. вы должны прочитать документ в jquery.

вы можете попробовать это, я не уверен, что это сработает, хотя:

// run this when form submitted
$("#frmUser").bind('ajax:complete', function() {
   var mainElement = gvUsers.GetMainElement();
   var x = ASPxClientUtils.GetAbsoluteX(mainElement) + (gvUsers.GetWidth() - 500) / 2;
   var y = ASPxClientUtils.GetAbsoluteY(mainElement) + (gvUsers.GetHeight() - 200) / 2;
   reminderPopup.ShowAtPos(x, y); 
});

gvUsers.PerformCallback($("#frmUser").submit);
  • 0
    Спасибо за ответ. Я попробовал это, и ничего не случилось.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню