Skip to content
Permalink
Browse files

Widget: Create eventNamespace property instead of constantly rebuildi…

…ng it.
  • Loading branch information
scottgonzalez committed Jun 14, 2012
1 parent 28b14ec commit 00d4beb0ca4a99933bb7e786a1dd50618c180a0b
Showing with 8 additions and 7 deletions.
  1. +2 −2 tests/unit/widget/widget_core.js
  2. +6 −5 ui/jquery.ui.widget.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"
});
},
@@ -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 );

0 comments on commit 00d4beb

Please sign in to comment.
You can’t perform that action at this time.