JSFiddle - React, Tailwind, and code Playground
by Bryson Murray
HTML
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<div class="elem">1</div>
<div id="first" class="clicker">click here</div>
second
<div id="second" class="clicker">1</div>
<div id="promiseTest">
<button>Go</button>
<p>Ready...</p>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
CSS
.elem{
border: 1px solid black;
width: 100px;
padding: 10px;
margin: 10px;
}
.clicker{
border: 1px solid blue;
width: 100px;
padding: 10px;
margin: 10px;
}
#promiseTest div {
height: 50px;
width: 50px;
float: left;
margin-right: 10px;
display: none;
background-color: #090;
}
</style>
JavaScript
$(".elem").click(function(e, callback) {
setTimeout(function(){
alert("Code 1");
if (typeof callback === "function")
callback();
}, 1000);
});
$(".elem").trigger("click", function() {
alert("Code 2");
});
$("#second").click(function(e) {
setTimeout(function(){
alert("Second Click Event Fired");
$("#second").css('background', 'red');
}, 1000);
});
var promise = function() {
alert('"Click Here" Event Fired');
var defer = $.Deferred(),
filtered = defer.then(function() {
alert("'then()' Event Fired");
$("#second").css('background', 'yellow');
$("#second").click();
});
defer.resolve();
filtered.done(function() {
alert("'done()' Event Fired");
$("#second").css('background', 'green');
});
};
$("#first").click(promise);
<body>
<button>Go</button>
<p>Ready...</p>
<div></div>
<div></div>
<div></div>
<div></div>
<script>
$( "button" ).on( "click", function() {
$( "p" ).append( "Started..." );
$( "div" ).each(function( i ) {
$( this ).fadeIn().fadeOut( 1000 * ( i + 1 ) );
});
$( "div" ).promise().done(function() {
$( "p" ).append( " Finished! " );
});
});
</script>