Skip to content

Instantly share code, notes, and snippets.

@timneutkens
Created May 31, 2016 13:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timneutkens/a3deb7c0ea936d002aa1afc07f1dbfe8 to your computer and use it in GitHub Desktop.
Save timneutkens/a3deb7c0ea936d002aa1afc07f1dbfe8 to your computer and use it in GitHub Desktop.
Not done yet.
/**
* detect a click outside of an element and trigger callbacks based on that click.
* @param trigger
* @param element
* @param openCallback
* @param closeCallback
*/
function DetectClickOutsideOfElement (trigger, element, openCallback, closeCallback) {
var enabled = false;
var clickedOutside = function (event) {
if (typeof event !== 'undefined' && typeof event.target !== 'undefined' && $(event.target).closest(element).length === 1) {
return false;
}
function done() {
$('html').off('click', 'body', clickedOutside);
enabled = false;
}
closeCallback(done);
};
$(trigger).on('click', function () {
if (enabled) {
clickedOutside();
} else {
function done() {
$('html').on('click', 'body', clickedOutside);
enabled = true;
}
openCallback(done);
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment