Skip to content

Commit bcc61dc

Browse files
committed
add origin
1 parent feb48dc commit bcc61dc

6 files changed

Lines changed: 29 additions & 6 deletions

File tree

dist/regular.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1886,7 +1886,9 @@ dom.attr = function(node, name, value){
18861886
dom.on = function(node, type, handler){
18871887
var types = type.split(' ');
18881888
handler.real = function(ev){
1889-
handler.call(node, new Event(ev));
1889+
var $event = new Event(ev);
1890+
$event.origin = node;
1891+
handler.call(node, $event);
18901892
}
18911893
types.forEach(function(type){
18921894
type = fixEventName(node, type);

dist/regular.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/dom.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,9 @@ dom.attr = function(node, name, value){
177177
dom.on = function(node, type, handler){
178178
var types = type.split(' ');
179179
handler.real = function(ev){
180-
handler.call(node, new Event(ev));
180+
var $event = new Event(ev);
181+
$event.origin = node;
182+
handler.call(node, $event);
181183
}
182184
types.forEach(function(type){
183185
type = fixEventName(node, type);

test/regular.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1884,7 +1884,9 @@ dom.attr = function(node, name, value){
18841884
dom.on = function(node, type, handler){
18851885
var types = type.split(' ');
18861886
handler.real = function(ev){
1887-
handler.call(node, new Event(ev));
1887+
var $event = new Event(ev);
1888+
$event.origin = node;
1889+
handler.call(node, $event);
18881890
}
18891891
types.forEach(function(type){
18901892
type = fixEventName(node, type);

test/runner/vendor/util.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ var dispatchMockEvent = (function(){
4545

4646
case 'MouseEvent':
4747
ev = document.createEvent('MouseEvent');
48-
ev.initMouseEvent(type, true, true, null, 1, 0, 0, 0, 0, false, false, false, false, 0, null)
48+
ev.initMouseEvent(type, true, true)
4949
break;
5050

5151
case 'KeyboardEvent':
5252
ev = document.createEvent(EventType || 'MouseEvent'),
5353
initMethod = ev.initKeyboardEvent ? 'initKeyboardEvent': 'initKeyEvent';
54-
ev[initMethod]( type, true, true, null, false, false, false, false, 9, 0 )
54+
ev[initMethod]( type, true, true)
5555
break;
5656

5757
case 'HTMLEvents':

test/spec/browser-dom.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,23 @@ void function(){
186186

187187
})
188188

189+
it("$event.origin should point to the element that bingding the event", function(done){
190+
var container = document.createElement('div');
191+
document.body.appendChild(container);
192+
var component = new Regular({
193+
template: "<div on-click=hello2 on-click={this.hello2($event)} ref=div > <a ref=a href='javascript:;'>haha</a></div>",
194+
data: { test: 0 , name: 'hahah'},
195+
hello2: function($event){
196+
$event.preventDefault();
197+
expect($event.origin).to.equal(this.$refs.div);
198+
done();
199+
document.body.removeChild(container);
200+
this.destroy();
201+
}
202+
}).$inject(container);
203+
dispatchMockEvent(component.$refs.a, "click");
204+
})
205+
189206
})
190207

191208
describe("delegate Event via `delegate-*`", function(){

0 commit comments

Comments
 (0)