This repository was archived by the owner on May 29, 2019. It is now read-only.
File tree 2 files changed +20
-3
lines changed
2 files changed +20
-3
lines changed Original file line number Diff line number Diff line change @@ -29,7 +29,8 @@ angular.module('ui.bootstrap.dropdown', [])
29
29
} ;
30
30
31
31
var closeDropdown = function ( evt ) {
32
- if ( evt && evt . isDefaultPrevented ( ) ) {
32
+ var toggleElement = openScope . getToggleElement ( ) ;
33
+ if ( evt && toggleElement && toggleElement [ 0 ] . contains ( evt . target ) ) {
33
34
return ;
34
35
}
35
36
@@ -76,6 +77,10 @@ angular.module('ui.bootstrap.dropdown', [])
76
77
return scope . isOpen ;
77
78
} ;
78
79
80
+ scope . getToggleElement = function ( ) {
81
+ return self . toggleElement ;
82
+ } ;
83
+
79
84
scope . focusToggleElement = function ( ) {
80
85
if ( self . toggleElement ) {
81
86
self . toggleElement [ 0 ] . focus ( ) ;
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ describe('dropdownToggle', function() {
11
11
12
12
var clickDropdownToggle = function ( elm ) {
13
13
elm = elm || element ;
14
- elm . find ( 'a' ) . click ( ) ;
14
+ elm . find ( 'a[dropdown-toggle] ' ) . click ( ) ;
15
15
} ;
16
16
17
17
var triggerKeyDown = function ( element , keyCode ) {
@@ -26,7 +26,7 @@ describe('dropdownToggle', function() {
26
26
27
27
describe ( 'basic' , function ( ) {
28
28
function dropdown ( ) {
29
- return $compile ( '<li class="dropdown"><a href dropdown-toggle></a><ul><li>Hello</li></ul></li>' ) ( $rootScope ) ;
29
+ return $compile ( '<li class="dropdown"><a href dropdown-toggle></a><ul><li><a href> Hello</a> </li></ul></li>' ) ( $rootScope ) ;
30
30
}
31
31
32
32
beforeEach ( function ( ) {
@@ -41,6 +41,18 @@ describe('dropdownToggle', function() {
41
41
expect ( element . hasClass ( 'open' ) ) . toBe ( false ) ;
42
42
} ) ;
43
43
44
+ it ( 'should toggle when an option is clicked' , function ( ) {
45
+ $document . find ( 'body' ) . append ( element ) ;
46
+ expect ( element . hasClass ( 'open' ) ) . toBe ( false ) ;
47
+ clickDropdownToggle ( ) ;
48
+ expect ( element . hasClass ( 'open' ) ) . toBe ( true ) ;
49
+
50
+ var optionEl = element . find ( 'ul > li' ) . eq ( 0 ) . find ( 'a' ) . eq ( 0 ) ;
51
+ optionEl . click ( ) ;
52
+ expect ( element . hasClass ( 'open' ) ) . toBe ( false ) ;
53
+ element . remove ( ) ;
54
+ } ) ;
55
+
44
56
it ( 'should close on document click' , function ( ) {
45
57
clickDropdownToggle ( ) ;
46
58
expect ( element . hasClass ( 'open' ) ) . toBe ( true ) ;
You can’t perform that action at this time.
0 commit comments