我具有以下功能。

function ChangeDasPanel(controllerPath, postParams) {

    $.post(controllerPath, postParams, function(returnValue) {

        $('#DasSpace').hide("slide", { direction: "right" }, 1000, function() {

            $('#DasSpace').contents().remove();

            $('#DasSpace').append(returnValue).css("display", "block");

            $('#DasSpace').show("slide", { direction: "right" }, 1000);

        });

    });

};

但我希望能够这样称呼它
ChangeDasPanel("../Home/Test", {} ,function (){
  //do some stuff on callback
}

如何在函数中实现对回调的支持?

最佳答案

function ChangeDasPanel(controllerPath, postParams, f) {
  $.get(
    controllerPath,
    postParams,
    function(returnValue) {
      var $DasSpace = $('#DasSpace');
      $DasSpace.hide(
        "slide", { direction: "right" }, 1000,
        function() {
          $DasSpace.contents().remove();
          $DasSpace.append(returnValue).css("display", "block");
          $DasSpace.show("slide", { direction: "right" }, 1000);
        }
      );
      if (typeof f == "function") f(); else alert('meh');
    }
  );
};

您可以像在JavaScript中传递任何其他对象一样传递函数。传递回调函数很简单,您甚至可以在o​​jit_code调用中自己进行。

您可以决定是将回调作为$.post()回调的一部分还是单独调用。

09-19 20:22