X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fevent.js;h=e5f6a453a46eb4e00b5e6fd490ea885bdddb8732;hb=9476530fa1e39ce1324e98f4dbb79576895372e5;hp=230af19e01fab10bd839c69ab46fd95ec4c66b7f;hpb=48164ee603bc4ec17f2fb72571c531ebdc7213ae;p=jquery.git diff --git a/src/event.js b/src/event.js index 230af19..e5f6a45 100644 --- a/src/event.js +++ b/src/event.js @@ -116,7 +116,7 @@ jQuery.event = { // Namespaced event handlers var namespaces = type.split("."); type = namespaces.shift(); - var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); + var namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); if ( events[type] ) { // remove the given handler for the given type @@ -249,7 +249,7 @@ jQuery.event = { // Cache this now, all = true means, any handler all = !namespaces.length && !event.exclusive; - var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); + var namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); handlers = ( jQuery.data(this, "events") || {} )[event.type]; @@ -354,7 +354,7 @@ jQuery.event = { }, teardown: function( namespaces ){ if ( namespaces.length ) { - var remove = 0, name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)"); + var remove = 0, name = new RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)"); jQuery.each( (jQuery.data(this, "events").live || {}), function(){ if ( name.test(this.type) ) @@ -548,19 +548,19 @@ jQuery.fn.extend({ var proxy = jQuery.event.proxy( fn ); proxy.guid += this.selector + type; - jQuery(document).bind( liveConvert(type, this.selector), this.selector, proxy ); + jQuery( this.context ).bind( liveConvert(type, this.selector), this.selector, proxy ); return this; }, die: function( type, fn ){ - jQuery(document).unbind( liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type } : null ); + jQuery( this.context ).unbind( liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type } : null ); return this; } }); function liveHandler( event ){ - var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"), + var check = new RegExp("(^|\\.)" + event.type + "(\\.|$)"), stop = true, elems = []; @@ -677,6 +677,9 @@ jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," + // Prevent memory leaks in IE // And prevent errors on refresh with events like mouseover in other browsers // Window isn't included so as not to unbind existing unload events +// More info: +// - http://isaacschlueter.com/2006/10/msie-memory-leaks/ +// - https://bugzilla.mozilla.org/show_bug.cgi?id=252542 jQuery( window ).bind( 'unload', function(){ for ( var id in jQuery.cache ) // Skip the window