mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Widget: Create eventNamespace property instead of constantly rebuilding it.
This commit is contained in:
parent
28b14ec47c
commit
00d4beb0ca
@ -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"
|
||||
});
|
||||
},
|
||||
|
11
ui/jquery.ui.widget.js
vendored
11
ui/jquery.ui.widget.js
vendored
@ -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 );
|
||||
|
Loading…
Reference in New Issue
Block a user