diff --git a/src/event.js b/src/event.js index 488ffdcc9..57094c747 100644 --- a/src/event.js +++ b/src/event.js @@ -103,13 +103,17 @@ var returnTrue = function(){return true}, returnFalse = function(){return false}, + ignoreProperties = /^([A-Z]|layer[XY]$)/, eventMethods = { preventDefault: 'isDefaultPrevented', stopImmediatePropagation: 'isImmediatePropagationStopped', stopPropagation: 'isPropagationStopped' } function createProxy(event) { - var proxy = $.extend({originalEvent: event}, event) + var key, proxy = { originalEvent: event } + for (key in event) + if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key] + $.each(eventMethods, function(name, predicate) { proxy[name] = function(){ this[predicate] = returnTrue diff --git a/test/event.html b/test/event.html index f1672b40a..aca206daa 100644 --- a/test/event.html +++ b/test/event.html @@ -129,6 +129,17 @@

Zepto event tests

this.el.off({ click: fn }).off({ click: fn2 }, null) click(this.el) t.assertEqual('a b c c', log.sort().join(' ')) + }, + + testDelegateEventProperties: function(t){ + var type, target + $(document).on('click', 'div', function(e){ + type = e.type + target = e.target + }) + click(this.el) + t.assertEqual('click', type) + t.assertIdentical(this.el.get(0), target) } }) })()