Skip to content
Permalink
Browse files

Widget: Added _hoverable() and _focusable().

  • Loading branch information...
scottgonzalez committed Jan 21, 2011
1 parent 6072703 commit 711df1f5e54062d090d92f4e630e4cb0cc137b21
Showing with 38 additions and 25 deletions.
  1. +4 −25 ui/jquery.ui.accordion.js
  2. +34 −0 ui/jquery.ui.widget.js
@@ -43,32 +43,11 @@ $.widget( "ui.accordion", {
.addClass( "ui-accordion-li-fix" );

self.headers = self.element.find( options.header )
.addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" )
.bind( "mouseenter.accordion", function() {
if ( options.disabled ) {
return;
}
$( this ).addClass( "ui-state-hover" );
})
.bind( "mouseleave.accordion", function() {
if ( options.disabled ) {
return;
}
$( this ).removeClass( "ui-state-hover" );
})
.bind( "focus.accordion", function() {
if ( options.disabled ) {
return;
}
$( this ).addClass( "ui-state-focus" );
})
.bind( "blur.accordion", function() {
if ( options.disabled ) {
return;
}
$( this ).removeClass( "ui-state-focus" );
});
.addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" );

self._hoverable( self.headers );
self._focusable( self.headers );

self.headers.next()
.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );
self.headers.find( ":first-child" ).addClass( "ui-accordion-heading" );
@@ -130,6 +130,8 @@ $.Widget.prototype = {
options );

this.bindings = $();
this.hoverable = $();
this.focusable = $();
this._bind({ remove: "destroy" });

this._create();
@@ -151,6 +153,8 @@ $.Widget.prototype = {

destroy: function() {
this._destroy();
// we can probably remove the unbind calls in 2.0
// all event bindings should go through this._bind()
this.element
.unbind( "." + this.widgetName )
.removeData( this.widgetName );
@@ -160,7 +164,11 @@ $.Widget.prototype = {
.removeClass(
this.widgetBaseClass + "-disabled " +
"ui-state-disabled" );

// clean up events and states
this.bindings.unbind( "." + this.widgetName );
this.hoverable.removeClass( "ui-state-hover" );
this.focusable.removeClass( "ui-state-focus" );
},
_destroy: $.noop,

@@ -203,6 +211,8 @@ $.Widget.prototype = {
this.widget()
.toggleClass( this.widgetBaseClass + "-disabled ui-state-disabled", !!value )
.attr( "aria-disabled", value );
this.hoverable.removeClass( "ui-state-hover" );
this.focusable.removeClass( "ui-state-focus" );
}

return this;
@@ -235,6 +245,30 @@ $.Widget.prototype = {
});
},

_hoverable: function( element ) {
this.hoverable = this.hoverable.add( element );
this._bind( element, {
mouseenter: function( event ) {
$( event.currentTarget ).addClass( "ui-state-hover" );
},
mouseleave: function( event ) {
$( event.currentTarget ).removeClass( "ui-state-hover" );
}
});
},

_focusable: function( element ) {
this.focusable = this.focusable.add( element );
this._bind( element, {
focus: function( event ) {
$( event.currentTarget ).addClass( "ui-state-focus" );
},
blur: function( event ) {
$( event.currentTarget ).removeClass( "ui-state-focus" );
}
});
},

_trigger: function( type, event, data ) {
var callback = this.options[ type ];

0 comments on commit 711df1f

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