Skip to content

Commit 8a485b6

Browse files
authored
init for jQuery
1 parent d149fd0 commit 8a485b6

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

jQuery.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
$.fn.clickOut = function(eventNamespace, callback, closestElements) {
2+
let self = this;
3+
if (self && self.length) {
4+
$("html").off("." + eventNamespace);
5+
setTimeout(function() {
6+
$("html").on("mousedown." + eventNamespace, function(event) {
7+
8+
// do not close element while click on custom siblings
9+
if (closestElements && closestElements.length) {
10+
for (var i = 0; i < closestElements.length; i++) {
11+
if ($(event.target).closest(closestElements[i]).length) {
12+
return;
13+
}
14+
}
15+
}
16+
17+
if (!$(event.target).closest(self).length) {
18+
callback();
19+
removeClickOut();
20+
}
21+
})
22+
});
23+
self[0].addEventListener( "DOMNodeRemovedFromDocument", removeClickOut);
24+
self.on( "hide", removeClickOut);
25+
26+
/**
27+
* Remove clickOut event handlers
28+
*/
29+
function removeClickOut() {
30+
self.off("hide");
31+
self[0].removeEventListener( "DOMNodeRemovedFromDocument", removeClickOut);
32+
$("html").off("." + eventNamespace);
33+
};
34+
}
35+
return self;
36+
}

0 commit comments

Comments
 (0)