Browse Source

Queries focusable nodes every time since they may be changed manually.

NaotoshiFujita 3 năm trước cách đây
mục cha
commit
905e083047

+ 1 - 2
dist/js/splide.js

@@ -839,7 +839,6 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
     var styles = getAttribute(slide, "style");
     var styles = getAttribute(slide, "style");
     var isClone = slideIndex > -1;
     var isClone = slideIndex > -1;
     var container = child(slide, "." + CLASS_CONTAINER);
     var container = child(slide, "." + CLASS_CONTAINER);
-    var focusableNodes = queryAll(slide, options.focusableNodes || "");
     var destroyed;
     var destroyed;
 
 
     function mount() {
     function mount() {
@@ -916,7 +915,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
 
 
       setAttribute(slide, ARIA_HIDDEN, hidden || "");
       setAttribute(slide, ARIA_HIDDEN, hidden || "");
       setAttribute(slide, TAB_INDEX, !hidden && options.slideFocus ? 0 : "");
       setAttribute(slide, TAB_INDEX, !hidden && options.slideFocus ? 0 : "");
-      setAttribute(focusableNodes || [], TAB_INDEX, hidden ? -1 : "");
+      setAttribute(queryAll(slide, options.focusableNodes || ""), TAB_INDEX, hidden ? -1 : "");
 
 
       if (visible !== hasClass(slide, CLASS_VISIBLE)) {
       if (visible !== hasClass(slide, CLASS_VISIBLE)) {
         toggleClass(slide, CLASS_VISIBLE, visible);
         toggleClass(slide, CLASS_VISIBLE, visible);

+ 6 - 6
src/js/components/Slides/Slide.ts

@@ -1,6 +1,7 @@
 import {
 import {
   ALL_ATTRIBUTES,
   ALL_ATTRIBUTES,
-  ARIA_CONTROLS, ARIA_CURRENT,
+  ARIA_CONTROLS,
+  ARIA_CURRENT,
   ARIA_HIDDEN,
   ARIA_HIDDEN,
   ARIA_LABEL,
   ARIA_LABEL,
   ARIA_ROLEDESCRIPTION,
   ARIA_ROLEDESCRIPTION,
@@ -89,10 +90,9 @@ export function Slide( Splide: Splide, index: number, slideIndex: number, slide:
   const { Components, root, options } = Splide;
   const { Components, root, options } = Splide;
   const { isNavigation, updateOnMove, i18n } = options;
   const { isNavigation, updateOnMove, i18n } = options;
   const { resolve } = Components.Direction;
   const { resolve } = Components.Direction;
-  const styles         = getAttribute( slide, 'style' );
-  const isClone        = slideIndex > -1;
-  const container      = child( slide, `.${ CLASS_CONTAINER }` );
-  const focusableNodes = queryAll( slide, options.focusableNodes || '' );
+  const styles    = getAttribute( slide, 'style' );
+  const isClone   = slideIndex > -1;
+  const container = child( slide, `.${ CLASS_CONTAINER }` );
 
 
   /**
   /**
    * Turns into `true` when the component is destroyed.
    * Turns into `true` when the component is destroyed.
@@ -205,7 +205,7 @@ export function Slide( Splide: Splide, index: number, slideIndex: number, slide:
 
 
     setAttribute( slide, ARIA_HIDDEN, hidden || '' );
     setAttribute( slide, ARIA_HIDDEN, hidden || '' );
     setAttribute( slide, TAB_INDEX, ! hidden && options.slideFocus ? 0 : '' );
     setAttribute( slide, TAB_INDEX, ! hidden && options.slideFocus ? 0 : '' );
-    setAttribute( focusableNodes || [], TAB_INDEX, hidden ? -1 : '' );
+    setAttribute( queryAll( slide, options.focusableNodes || '' ), TAB_INDEX, hidden ? -1 : '' );
 
 
     if ( visible !== hasClass( slide, CLASS_VISIBLE ) ) {
     if ( visible !== hasClass( slide, CLASS_VISIBLE ) ) {
       toggleClass( slide, CLASS_VISIBLE, visible );
       toggleClass( slide, CLASS_VISIBLE, visible );