Skip to content

Instantly share code, notes, and snippets.

@hara-y-u
Created October 30, 2011 12:16
Show Gist options
  • Save hara-y-u/1325845 to your computer and use it in GitHub Desktop.
Save hara-y-u/1325845 to your computer and use it in GitHub Desktop.
wait for multiple events jQuery Plugin
(function($) {
// eventSettings: e.g. { eventName1: 2, eventName2: 3 }
$.fn.waitEvents = function(eventSettings, fn) {
var key, ret = {}, evts = eventSettings,
origEvts = $.extend(true, {}, evts);
for(key in evts) {
if(evts.hasOwnProperty(key)) {
this.bind(key, function(ev) {
var ley;
evts[ev.type]--;
ret[ev.type] || (ret[ev.type] = []);
ret[ev.type].push(ev);
for(ley in evts) {
if(evts.hasOwnProperty(ley)) {
if(0 < evts[ley]) {
return;
}
}
}
fn($.extend(true, {}, ret));
evts = $.extend(true, {}, origEvts);
ret = {};
});
}
}
return this;
}
}(jQuery));
@hara-y-u
Copy link
Author

There should be function for "un"wait..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment