Skip to content

Commit

Permalink
Widget: Added _hoverable() and _focusable().
Browse files Browse the repository at this point in the history
  • Loading branch information
scottgonzalez committed Jan 21, 2011
1 parent 6072703 commit 711df1f
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 25 deletions.
29 changes: 4 additions & 25 deletions ui/jquery.ui.accordion.js
Original file line number Diff line number Diff line change
Expand Up @@ -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" );
Expand Down
34 changes: 34 additions & 0 deletions ui/jquery.ui.widget.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ $.Widget.prototype = {
options );

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

this._create();
Expand All @@ -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 );
Expand All @@ -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,

Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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 ];

Expand Down

0 comments on commit 711df1f

Please sign in to comment.