How do I write a jquery function that accepts a callback as a parameter How do I write a jquery function that accepts a callback as a parameter jquery jquery

How do I write a jquery function that accepts a callback as a parameter


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');    }  );};

You can pass functions like any other object in JavaScript. Passing in a callback function is straight-forward, you even do it yourself in the $.post() call.

You can decide whether you want to have your callback called as part of the $.post() callback or on its own.


You know that global variables and functions are evil, so why not put your's into the jQuery namespace:

$.extend({  myFunc : function(someArg, callbackFnk){    var url = "http://example.com?q=" + someArg;    $.getJSON(url, function(data){      // now we are calling our own callback function      if(typeof callbackFnk == 'function'){        callbackFnk.call(this, data);      }    });  }});$.myFunc(args, function(){  // now my function is not hardcoded  // in the plugin itself});

Read this post to get a better understanding: Creating callback functions in jQuery


If I understand you correctly, it's as easy as setting another parameter and calling the variable as a function:

function foo(mycallback) {    mycallback();}