11{% load static %}
22< script type ="application/javascript ">
3- $ ( '.dropdown-menu' ) . on ( 'click' , function ( event ) {
4- event . stopPropagation ( ) ;
5- } ) ;
6-
7-
83 $ ( '.selectpicker' ) . selectpicker ( {
94 container : 'body'
105 } ) ;
6+
7+ $ ( '.dropdown-menu' ) . on ( 'click' , function ( event ) {
8+ var target = $ ( event . target ) ;
9+ var bs_select_parent = target . parents ( '.bootstrap-select' )
10+ if ( bs_select_parent . length ) {
11+ var hasClass = bs_select_parent . hasClass ( 'open' ) ;
12+ if ( hasClass ) {
13+ bs_select_parent . removeClass ( 'open' ) ;
14+ } else {
15+ bs_select_parent . addClass ( 'open' ) ;
16+ }
17+ }
18+ event . stopPropagation ( )
19+ } ) ;
1120
1221 $ ( 'body' ) . on ( 'click' , function ( event ) {
1322 var target = $ ( event . target ) ;
14- if ( target . parents ( '.bootstrap-select' ) . length ) {
15- event . stopPropagation ( ) ;
16- $ ( '.bootstrap-select.open' ) . removeClass ( 'open' ) ;
17- }
18- var hasClass = $ ( '.bs-container' ) . hasClass ( 'open' ) ;
19- if ( hasClass ) {
20- $ ( '.bs-container' ) . removeClass ( 'open' ) ;
23+ var selected = target [ 0 ] . id . indexOf ( 'bs-select' )
24+ var bs_select_parent = target . parents ( '.bootstrap-select' )
25+ if ( selected == - 1 && bs_select_parent . length ) {
26+
27+ var hasClass = bs_select_parent . hasClass ( 'open' ) ;
28+ if ( hasClass ) {
29+ bs_select_parent . removeClass ( 'open' ) ;
30+ } else {
31+ bs_select_parent . addClass ( 'open' ) ;
32+ }
33+ }
34+ var hasClass = bs_select_parent . hasClass ( 'open' ) ;
35+ if ( selected == - 1 && hasClass ) {
36+ bs_select_parent . removeClass ( 'open' ) ;
2137 }
22- } ) ;
38+ } ) ;
2339</ script >
0 commit comments