@@ -5,11 +5,6 @@ import jss from 'js-stylesheet';
55import uuid from '../helpers/uuid' ;
66import childrenPropType from '../helpers/childrenPropType' ;
77
8- // Determine if a node from event.target is a Tab element
9- function isTabNode ( node ) {
10- return node . nodeName === 'LI' && node . getAttribute ( 'role' ) === 'tab' ;
11- }
12-
138// Determine if a tab node is disabled
149function isTabDisabled ( node ) {
1510 return node . getAttribute ( 'aria-disabled' ) === 'true' ;
@@ -70,7 +65,7 @@ module.exports = React.createClass({
7065 handleClick ( e ) {
7166 let node = e . target ;
7267 do {
73- if ( isTabNode ( node ) ) {
68+ if ( this . isTabNode ( node ) ) {
7469 if ( isTabDisabled ( node ) ) {
7570 return ;
7671 }
@@ -83,7 +78,7 @@ module.exports = React.createClass({
8378 } ,
8479
8580 handleKeyDown ( e ) {
86- if ( isTabNode ( e . target ) ) {
81+ if ( this . isTabNode ( e . target ) ) {
8782 let index = this . state . selectedIndex ;
8883 let preventDefault = false ;
8984
@@ -311,6 +306,11 @@ module.exports = React.createClass({
311306 ) ;
312307 } ,
313308
309+ // Determine if a node from event.target is a Tab element
310+ isTabNode ( node ) {
311+ return node . nodeName === 'LI' && node . getAttribute ( 'role' ) === 'tab' && node . parentElement . parentElement === findDOMNode ( this ) ;
312+ } ,
313+
314314 // This is an anti-pattern, so sue me
315315 copyPropsToState ( props ) {
316316 let selectedIndex = props . selectedIndex ;
0 commit comments