detect tabindex

0

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
<h1>Click aqui y luego TAB para navegar</h1>
    <ul id="mb1" tabindex="-1">
        <li id="mb1_menu1" tabindex="1"> Font
            <ul id="fontMenu" title="Font" tabindex="-1">
                <li id="sans-serif" tabindex="1.2">Sans-serif</li>
                <li id="serif" tabindex="1.3">Serif</li>
                <li id="monospace" tabindex="-1">Monospace</li>
                <li id="fantasy" tabindex="-1">Fantasy</li>
            </ul>
        </li>
        <li id="mb1_menu2" tabindex="2"> Style
            <ul id="styleMenu" title="Style" tabindex="-1">
                <li id="italic" tabindex="2.2">Italics</li>
                <li id="bold" tabindex="2.3">Bold</li>
                <li id="underline" tabindex="2.4">Underlined</li>
            </ul>
        </li>
        <li id="mb1_menu3" tabindex="3"> Justification
            <ul id="justificationMenu" title="Justication" tabindex="-1">
                <li id="left" tabindex="3.2">Left</li>
                <li id="center" tabindex="3.3">Centered</li>
                <li id="right" tabindex="3.4">Right</li>
                <li id="justify" tabindex="3.5">Justify</li>
            </ul>
        </li>
    </ul>
</body>
</html>

I hope you can help me. I want to use the tab index to navigate through a web page (travel option by option). I want you to print in console the text of the option in which you are. I hope you can understand me and help me. Come out.

    
asked by Jose Sotteccani 14.06.2017 в 23:47
source

2 answers

1

This code in jquery could help you, the keyup function is used:

$(window).keyup(function (e) {
  var $focused = $(':focus'); 
  // OTRAS OPCIONES PODRIAN SER:
  // $focused.attr('class')
  // $focused.attr('id')...
  console.log(", "+$focused.prop("tagName")+", "+$focused.text() );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
<h1>Click aqui y luego TAB para navegar</h1>
    <ul id="mb1" tabindex="-1">
        <li id="mb1_menu1" tabindex="1"> Font
            <ul id="fontMenu" title="Font" tabindex="-1">
                <li id="sans-serif" tabindex="1.2">Sans-serif</li>
                <li id="serif" tabindex="1.3">Serif</li>
                <li id="monospace" tabindex="-1">Monospace</li>
                <li id="fantasy" tabindex="-1">Fantasy</li>
            </ul>
        </li>
        <li id="mb1_menu2" tabindex="2"> Style
            <ul id="styleMenu" title="Style" tabindex="-1">
                <li id="italic" tabindex="2.2">Italics</li>
                <li id="bold" tabindex="2.3">Bold</li>
                <li id="underline" tabindex="2.4">Underlined</li>
            </ul>
        </li>
        <li id="mb1_menu3" tabindex="3"> Justification
            <ul id="justificationMenu" title="Justication" tabindex="-1">
                <li id="left" tabindex="3.2">Left</li>
                <li id="center" tabindex="3.3">Centered</li>
                <li id="right" tabindex="3.4">Right</li>
                <li id="justify" tabindex="3.5">Justify</li>
            </ul>
        </li>
    </ul>
</body>
</html>

Using JS:

document.addEventListener('focus',function(e){
console.log("Elemento: "+document.activeElement.tagName
					+", "+document.activeElement.innerHTML);
}, true);
<h1>Click aqui y luego TAB para navegar</h1>
    <ul id="mb1" tabindex="-1">
        <li id="mb1_menu1" tabindex="1"> Font
            <ul id="fontMenu" title="Font" tabindex="-1">
                <li id="sans-serif" tabindex="1.2">Sans-serif</li>
                <li id="serif" tabindex="1.3">Serif</li>
                <li id="monospace" tabindex="-1">Monospace</li>
                <li id="fantasy" tabindex="-1">Fantasy</li>
            </ul>
        </li>
        <li id="mb1_menu2" tabindex="2"> Style
            <ul id="styleMenu" title="Style" tabindex="-1">
                <li id="italic" tabindex="2.2">Italics</li>
                <li id="bold" tabindex="2.3">Bold</li>
                <li id="underline" tabindex="2.4">Underlined</li>
            </ul>
        </li>
        <li id="mb1_menu3" tabindex="3"> Justification
            <ul id="justificationMenu" title="Justication" tabindex="-1">
                <li id="left" tabindex="3.2">Left</li>
                <li id="center" tabindex="3.3">Centered</li>
                <li id="right" tabindex="3.4">Right</li>
                <li id="justify" tabindex="3.5">Justify</li>
            </ul>
        </li>
    </ul>
    
answered by 15.06.2017 в 00:00
0

If using jQuery is an option, you can use .focus() along with .attr() as follows below:

$('#mb1 *').focus(function() {
    console.log($(this).attr('tabindex'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

<h1>Click aqui y luego TAB para navegar</h1>
    <ul id="mb1" tabindex="-1">
        <li id="mb1_menu1" tabindex="1"> Font
            <ul id="fontMenu" title="Font" tabindex="-1">
                <li id="sans-serif" tabindex="1.2">Sans-serif</li>
                <li id="serif" tabindex="1.3">Serif</li>
                <li id="monospace" tabindex="-1">Monospace</li>
                <li id="fantasy" tabindex="-1">Fantasy</li>
            </ul>
        </li>
        <li id="mb1_menu2" tabindex="2"> Style
            <ul id="styleMenu" title="Style" tabindex="-1">
                <li id="italic" tabindex="2.2">Italics</li>
                <li id="bold" tabindex="2.3">Bold</li>
                <li id="underline" tabindex="2.4">Underlined</li>
            </ul>
        </li>
        <li id="mb1_menu3" tabindex="3"> Justification
            <ul id="justificationMenu" title="Justication" tabindex="-1">
                <li id="left" tabindex="3.2">Left</li>
                <li id="center" tabindex="3.3">Centered</li>
                <li id="right" tabindex="3.4">Right</li>
                <li id="justify" tabindex="3.5">Justify</li>
            </ul>
        </li>
    </ul>
    
answered by 15.06.2017 в 00:25