mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-10-05 01:44:18 +00:00
Tabs: Use aria-controls instead of the anchor's href to match against location.hash. Fixes #8660 - Tabs: Set initial active tab from location hash for ajax tabs.
This commit is contained in:
parent
1ee090ea9e
commit
94221c4e5b
@ -7,7 +7,7 @@ var disabled = TestHelpers.tabs.disabled,
|
||||
module( "tabs: options" );
|
||||
|
||||
test( "{ active: default }", function() {
|
||||
expect( 4 );
|
||||
expect( 6 );
|
||||
|
||||
var element = $( "#tabs1" ).tabs();
|
||||
equal( element.tabs( "option", "active" ), 0, "should be 0 by default" );
|
||||
@ -19,6 +19,12 @@ test( "{ active: default }", function() {
|
||||
equal( element.tabs( "option", "active" ), 2, "should be 2 based on URL" );
|
||||
state( element, 0, 0, 1 );
|
||||
element.tabs( "destroy" );
|
||||
|
||||
location.hash = "#custom-id";
|
||||
element = $( "#tabs2" ).tabs();
|
||||
equal( element.tabs( "option", "active" ), 3, "should be 3 based on URL" );
|
||||
state( element, 0, 0, 0, 1, 0 );
|
||||
element.tabs( "destroy" );
|
||||
location.hash = "#";
|
||||
});
|
||||
|
||||
|
9
ui/jquery.ui.tabs.js
vendored
9
ui/jquery.ui.tabs.js
vendored
@ -51,7 +51,8 @@ $.widget( "ui.tabs", {
|
||||
var panel,
|
||||
that = this,
|
||||
options = this.options,
|
||||
active = options.active;
|
||||
active = options.active,
|
||||
locationHash = location.hash.substring( 1 );
|
||||
|
||||
this.running = false;
|
||||
|
||||
@ -80,9 +81,9 @@ $.widget( "ui.tabs", {
|
||||
|
||||
if ( active === null ) {
|
||||
// check the fragment identifier in the URL
|
||||
if ( location.hash ) {
|
||||
this.anchors.each(function( i, anchor ) {
|
||||
if ( anchor.hash === location.hash ) {
|
||||
if ( locationHash ) {
|
||||
this.tabs.each(function( i, tab ) {
|
||||
if ( $( tab ).attr( "aria-controls" ) === locationHash ) {
|
||||
active = i;
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user