X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;ds=inline;f=src%2Fevent.js;h=cac56bd6f75bc432d1f2a5441c5ecff05892269f;hb=45729831b136238d6b58cd2057192fd74073dfce;hp=8cf96da5087bc3697b797b386afe1776965523ca;hpb=09b59038a0d1b6a1e72d24b9cf86c2a9b2aa4d16;p=jquery.git diff --git a/src/event.js b/src/event.js index 8cf96da..cac56bd 100644 --- a/src/event.js +++ b/src/event.js @@ -190,9 +190,10 @@ jQuery.event = { }, // bubbling is internal - trigger: function( event, data, elem, bubbling ) { + trigger: function( event, data, elem /*, bubbling */ ) { // Event object or event type - var type = event.type || event; + var type = event.type || event, + bubbling = arguments[3]; if ( !bubbling ) { event = typeof event === "object" ? @@ -401,8 +402,20 @@ jQuery.event = { jQuery.event.add( this, data.live, liveHandler ); }, - teardown: function( namespaces ) { - jQuery.event.remove( this, namespaces[0], liveHandler ); + remove: function( namespaces ) { + if ( namespaces.length ) { + var remove = 0, name = new RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)"); + + jQuery.each( (jQuery.data(this, "events").live || {}), function() { + if ( name.test(this.type) ) { + remove++; + } + }); + + if ( remove < 1 ) { + jQuery.event.remove( this, namespaces[0], liveHandler ); + } + } } } }