File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments