Make sure namespaces is always an array, when passed to the remove special. Follow-up to eed69eccc5.

This commit is contained in:
jeresig 2010-01-28 14:16:52 -05:00
parent eed69eccc5
commit e9092e9954

View file

@ -187,6 +187,9 @@ jQuery.event = {
namespace = new RegExp("(^|\\.)" + namespace = new RegExp("(^|\\.)" +
jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)") jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)")
} else {
namespaces = [];
} }
var special = this.special[ type ] || {}; var special = this.special[ type ] || {};
@ -208,14 +211,14 @@ jQuery.event = {
} }
if ( special.remove ) { if ( special.remove ) {
special.remove.call( elem, namespaces || [], fn); special.remove.call( elem, namespaces, fn);
} }
// remove generic event handler if no more handlers exist // remove generic event handler if no more handlers exist
for ( ret in events[ type ] ) { for ( ret in events[ type ] ) {
break; break;
} }
if ( !ret ) { if ( !ret ) {
if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
if ( elem.removeEventListener ) { if ( elem.removeEventListener ) {