diff --git a/src/tooltip/test/tooltip.spec.js b/src/tooltip/test/tooltip.spec.js index ae4179caac..e392124adc 100644 --- a/src/tooltip/test/tooltip.spec.js +++ b/src/tooltip/test/tooltip.spec.js @@ -493,6 +493,24 @@ describe( '$tooltipProvider', function() { elm.trigger('blur'); expect( elmScope.tt_isOpen ).toBeFalsy(); })); + + it( 'should override the show and hide triggers if there is an attribute', inject( function ( $rootScope, $compile ) { + elmBody = angular.element( + '
' + ); + + scope = $rootScope; + $compile(elmBody)(scope); + scope.$digest(); + elm = elmBody.find('input'); + elmScope = elm.scope(); + + expect( elmScope.tt_isOpen ).toBeFalsy(); + elm.trigger('mouseenter'); + expect( elmScope.tt_isOpen ).toBeTruthy(); + elm.trigger('mouseleave'); + expect( elmScope.tt_isOpen ).toBeFalsy(); + })); }); describe( 'triggers with a custom mapped value', function() { diff --git a/src/tooltip/tooltip.js b/src/tooltip/tooltip.js index 2b65f3a931..28eb9e513e 100644 --- a/src/tooltip/tooltip.js +++ b/src/tooltip/tooltip.js @@ -82,16 +82,9 @@ angular.module( 'ui.bootstrap.tooltip', [ 'ui.bootstrap.position' ] ) * undefined; otherwise, it uses the `triggerMap` value of the show * trigger; else it will just use the show trigger. */ - function setTriggers ( trigger ) { - var show, hide; - - show = trigger || options.trigger || defaultTriggerShow; - if ( angular.isDefined ( options.trigger ) ) { - hide = triggerMap[options.trigger] || show; - } else { - hide = triggerMap[show] || show; - } - + function getTriggers ( trigger ) { + var show = trigger || options.trigger || defaultTriggerShow; + var hide = triggerMap[show] || show; return { show: show, hide: hide @@ -121,7 +114,7 @@ angular.module( 'ui.bootstrap.tooltip', [ 'ui.bootstrap.position' ] ) var popupTimeout; var $body; var appendToBody = angular.isDefined( options.appendToBody ) ? options.appendToBody : false; - var triggers = setTriggers( undefined ); + var triggers = getTriggers( undefined ); var hasRegisteredTriggers = false; // By default, the tooltip is not open. @@ -283,7 +276,7 @@ angular.module( 'ui.bootstrap.tooltip', [ 'ui.bootstrap.position' ] ) element.unbind( triggers.hide, hideTooltipBind ); } - triggers = setTriggers( val ); + triggers = getTriggers( val ); if ( triggers.show === triggers.hide ) { element.bind( triggers.show, toggleTooltipBind );