mirror of
https://github.com/jquery/jquery-ui.git
synced 2026-04-20 03:02:41 -04:00
Widget: Added _hoverable() and _focusable().
This commit is contained in:
29
ui/jquery.ui.accordion.js
vendored
29
ui/jquery.ui.accordion.js
vendored
@@ -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" );
|
||||
|
||||
34
ui/jquery.ui.widget.js
vendored
34
ui/jquery.ui.widget.js
vendored
@@ -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 ];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user