From 00d4beb0ca4a99933bb7e786a1dd50618c180a0b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Scott=20Gonz=C3=A1lez?= Date: Thu, 14 Jun 2012 10:51:29 -0400 Subject: [PATCH] Widget: Create eventNamespace property instead of constantly rebuilding it. --- tests/unit/widget/widget_core.js | 4 ++-- ui/jquery.ui.widget.js | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/tests/unit/widget/widget_core.js b/tests/unit/widget/widget_core.js index 1e40c4080..24ae9c567 100644 --- a/tests/unit/widget/widget_core.js +++ b/tests/unit/widget/widget_core.js @@ -749,11 +749,11 @@ test( "_on() with delegate", function() { $.ui.testWidget(); }); -test( "_bind() to common element", function() { +test( "_on() to common element", function() { expect( 1 ); $.widget( "ui.testWidget", { _create: function() { - this._bind( this.document, { + this._on( this.document, { "customevent": "_handler" }); }, diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js index d5e68683e..22049cbb8 100644 --- a/ui/jquery.ui.widget.js +++ b/ui/jquery.ui.widget.js @@ -211,11 +211,12 @@ $.Widget.prototype = { _createWidget: function( options, element ) { element = $( element || this.defaultElement || this )[ 0 ]; this.element = $( element ); + this.uuid = uuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; this.options = $.widget.extend( {}, this.options, this._getCreateOptions(), options ); - this.uuid = uuid++; this.bindings = $(); this.hoverable = $(); @@ -249,7 +250,7 @@ $.Widget.prototype = { // we can probably remove the unbind calls in 2.0 // all event bindings should go through this._on() this.element - .unbind( "." + this.widgetName + this.uuid ) + .unbind( this.eventNamespace ) // 1.9 BC for #7810 // TODO remove dual storage .removeData( this.widgetName ) @@ -258,14 +259,14 @@ $.Widget.prototype = { // http://bugs.jquery.com/ticket/9413 .removeData( $.camelCase( this.widgetFullName ) ); this.widget() - .unbind( "." + this.widgetName + this.uuid ) + .unbind( this.eventNamespace ) .removeAttr( "aria-disabled" ) .removeClass( this.widgetFullName + "-disabled " + "ui-state-disabled" ); // clean up events and states - this.bindings.unbind( "." + this.widgetName + this.uuid ); + this.bindings.unbind( this.eventNamespace ); this.hoverable.removeClass( "ui-state-hover" ); this.focusable.removeClass( "ui-state-focus" ); }, @@ -376,7 +377,7 @@ $.Widget.prototype = { } var match = event.match( /^(\w+)\s*(.*)$/ ), - eventName = match[1] + "." + instance.widgetName + instance.uuid, + eventName = match[1] + instance.eventNamespace, selector = match[2]; if ( selector ) { instance.widget().delegate( selector, eventName, handlerProxy ); -- 2.39.5