Skip to content
This repository has been archived by the owner on May 29, 2019. It is now read-only.

Commit

Permalink
fix(tooltip): fix binding to multiple triggers
Browse files Browse the repository at this point in the history
- Due to switch to raw `addEventListener`, changed to add and remove
  listeners to event triggers by iteration

Fixes #4371
Closes #4384
  • Loading branch information
wesleycho authored and icfantv committed Sep 10, 2015
1 parent 8ae664f commit d6cda93
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
8 changes: 6 additions & 2 deletions src/tooltip/test/tooltip.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -844,7 +844,7 @@ describe('$tooltipProvider', function() {

describe('triggers with a custom mapped value', function() {
beforeEach(module('ui.bootstrap.tooltip', function($tooltipProvider) {
$tooltipProvider.setTriggers({ 'customOpenTrigger': 'customCloseTrigger' });
$tooltipProvider.setTriggers({ customOpenTrigger: 'foo bar' });
$tooltipProvider.options({trigger: 'customOpenTrigger'});
}));

Expand All @@ -866,7 +866,11 @@ describe('$tooltipProvider', function() {
expect(tooltipScope.isOpen).toBeFalsy();
trigger(elm, 'customOpenTrigger');
expect(tooltipScope.isOpen).toBeTruthy();
trigger(elm, 'customCloseTrigger');
trigger(elm, 'foo');
expect(tooltipScope.isOpen).toBeFalsy();
trigger(elm, 'customOpenTrigger');
expect(tooltipScope.isOpen).toBeTruthy();
trigger(elm, 'bar');
expect(tooltipScope.isOpen).toBeFalsy();
}));
});
Expand Down
8 changes: 6 additions & 2 deletions src/tooltip/tooltip.js
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,9 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position'])
element.unbind(trigger, showTooltipBind);
});
triggers.hide.forEach(function(trigger) {
element.unbind(trigger, hideTooltipBind);
trigger.split(' ').forEach(function(hideTrigger) {
element[0].removeEventListener(hideTrigger, hideTooltipBind);
});
});
};

Expand All @@ -407,7 +409,9 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position'])
element[0].addEventListener(trigger, toggleTooltipBind);
} else if (trigger) {
element[0].addEventListener(trigger, showTooltipBind);
element[0].addEventListener(triggers.hide[idx], hideTooltipBind);
triggers.hide[idx].split(' ').forEach(function(trigger) {
element[0].addEventListener(trigger, hideTooltipBind);
});
}
});
}
Expand Down

0 comments on commit d6cda93

Please sign in to comment.