Merge pull request #10159 from ejn/bugfix/10158-target-name-collision
Fix target name collision in event.Target and Control
This commit is contained in:
@@ -40,7 +40,7 @@ class Target extends Disposable {
|
|||||||
* @private
|
* @private
|
||||||
* @type {*}
|
* @type {*}
|
||||||
*/
|
*/
|
||||||
this.target_ = opt_target;
|
this.eventTarget_ = opt_target;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
@@ -96,7 +96,7 @@ class Target extends Disposable {
|
|||||||
const evt = typeof event === 'string' ? new Event(event) : event;
|
const evt = typeof event === 'string' ? new Event(event) : event;
|
||||||
const type = evt.type;
|
const type = evt.type;
|
||||||
if (!evt.target) {
|
if (!evt.target) {
|
||||||
evt.target = this.target_ || this;
|
evt.target = this.eventTarget_ || this;
|
||||||
}
|
}
|
||||||
const listeners = this.listeners_[type];
|
const listeners = this.listeners_[type];
|
||||||
let propagate;
|
let propagate;
|
||||||
|
|||||||
@@ -54,3 +54,25 @@ describe('ol.control.Control\'s target', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('ol.control.Control\'s event target', function() {
|
||||||
|
it('is the Control when the Control uses the default target', function() {
|
||||||
|
const ctrl = new Control({element: document.createElement('div')});
|
||||||
|
ctrl.on('test-event', function(e) {
|
||||||
|
expect(e.target).to.be(ctrl);
|
||||||
|
});
|
||||||
|
ctrl.dispatchEvent('test-event');
|
||||||
|
ctrl.dispose();
|
||||||
|
});
|
||||||
|
it('is the Control when the Control has a custom target', function() {
|
||||||
|
const ctrl = new Control({
|
||||||
|
element: document.createElement('div'),
|
||||||
|
target: document.createElement('div')
|
||||||
|
});
|
||||||
|
ctrl.on('test-event', function(e) {
|
||||||
|
expect(e.target).to.be(ctrl);
|
||||||
|
});
|
||||||
|
ctrl.dispatchEvent('test-event');
|
||||||
|
ctrl.dispose();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user