Prevent a single event object from being fixed more than once
This commit is contained in:
parent
77bb2c505f
commit
b84b997ea4
1 changed files with 7 additions and 1 deletions
|
@ -268,17 +268,23 @@ jQuery.event = {
|
||||||
// Clean up added properties in IE to prevent memory leak
|
// Clean up added properties in IE to prevent memory leak
|
||||||
if (jQuery.browser.msie)
|
if (jQuery.browser.msie)
|
||||||
event.target = event.preventDefault = event.stopPropagation =
|
event.target = event.preventDefault = event.stopPropagation =
|
||||||
event.handler = event.data = null;
|
event.handler = event.data = event[expando] = null;
|
||||||
|
|
||||||
return val;
|
return val;
|
||||||
},
|
},
|
||||||
|
|
||||||
fix: function(event) {
|
fix: function(event) {
|
||||||
|
if ( event[expando] == true )
|
||||||
|
return event;
|
||||||
|
|
||||||
// store a copy of the original event object
|
// store a copy of the original event object
|
||||||
// and clone to set read-only properties
|
// and clone to set read-only properties
|
||||||
var originalEvent = event;
|
var originalEvent = event;
|
||||||
event = jQuery.extend({}, originalEvent);
|
event = jQuery.extend({}, originalEvent);
|
||||||
|
|
||||||
|
// Mark it as fixed
|
||||||
|
event[expando] = true;
|
||||||
|
|
||||||
// add preventDefault and stopPropagation since
|
// add preventDefault and stopPropagation since
|
||||||
// they will not work on the clone
|
// they will not work on the clone
|
||||||
event.preventDefault = function() {
|
event.preventDefault = function() {
|
||||||
|
|
Loading…
Reference in a new issue