Passing Parameters Into Callback

Code snippets to demonstrate ways to pass parameters into callback functions

by BinaryAcid

HTML

<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
<input id="example-1" type="button" class="button" value="Example 1" />
<input id="example-2" type="button" class="button" value="Example 2" />
<input id="example-3" type="button" class="button" value="Example 3" />

CSS

input.button{
  font-size:9pt;
  font-family:droid-serif;
  padding:3px;
  margin-left:5px;
  margin-top:5px;
}

JavaScript

// Objective: pass callbackParams into each of these callback functions

var echoCallbackParams = function(params) {
    console.log(params);
};

var echoCallbackEventParams = function(params) {
    console.log(params.data);
};

var echoSuccess = function(data, textStatus, jqXHR) {
    console.log("Text status: " + textStatus);
    console.log(data);
    console.log(jqXHR);
};

var fetchData = function(dataAccess, url, params) {
    dataAccess(url, params, echoSuccess);
};

var getJsonData = function(url, params, onSuccess) {
    $.getJSON(url, params, onSuccess);
};

$(document).ready(function() {
    var callbackParams = {
        var1: 'value 1',
        var2: 'value 2',
        var3: 'value 3'
    };

    // example 1 - pass in via an anonymous callback
    $("#example-1").click(function() {
        echoCallbackParams(callbackParams);
    });

    // example 2 - pass in via jQuery.click() API 
    $("#example-2").click(callbackParams, echoCallbackEventParams);

    // example 3 - pass in via jquery .ajax onsuccess API
    $("#example-3").click(function() {
        $.getJSON("/echo/jsonp/", callbackParams, echoSuccess);
    });

    // example 4 - pass in via a named function 
    fetchData(getJsonData, "/echo/jsonp/", callbackParams);
});