JSFiddle - React, Tailwind, and code Playground

HTML

<div id="loading"><img src="http://jimpunk.net/Loading/wp-content/uploads/loading1.gif"/></div>
<button>ShowLoadingGif</button>

CSS

#loading
{
    display:none;
}

JavaScript

var $promise = $.Deferred();

$promise.done(function() {
    alert("Done...");
});

$(function() {
    $("button").on("click", function() {
        $("#loading").show("slow", function() {
            $promise.resolve();
        });
    });
});