Using a closure from a callback in an Ajax request.

from jquery ninja book

by dandoyon

HTML

<ul id="results"></ul>

<div></div>

CSS

#results li.pass { color: green; }
#results li.fail { color: red; }

JavaScript

function assert(value, desc) {
    var li = document.createElement("li");
    li.className = value ? "pass" : "fail";
    li.appendChild(document.createTextNode(desc));
    document.getElementById("results").appendChild(li);
}

var elem = $("div");
elem.html("Loading...");
jQuery.ajax({
    url: "/echo/html/",
    success: function(html) {
        assert(elem, "The element to append to, via a closure.");       
        elem.html(html + 'was loaded'); // we're using a fake that returns nothing       
    }
});