Vue: @ keydown.tab também captura shift + tab

Criado em 6 mar. 2017  ·  3Comentários  ·  Fonte: vuejs/vue

@ keydown.tab também captura shift + tab. É este o comportamento esperado? Se for um bug, farei uma reprodução.

Comentários muito úteis

Só para atualizar isso, já que 2.5.0 vue tem o modificador .exact, que evita exatamente este comportamento:

@keydown.tab.exact="dostuff()"

Isso só funcionará quando a guia for pressionada, não quando shift + tab for pressionada. Veja https://vuejs.org/v2/guide/events.html#exact -Modifier para mais.

Todos 3 comentários

Sim, é esperado. Você deve verificar explicitamente se a tecla shift não foi pressionada

Aqui está a marcação da solução para fazer isso:

<your-element @keydown.tab="handleTabPress(someData, $event)"></your-element>

Dentro da função de manipulador, você pode detectar se SHIFT é pressionado examinando o $event :

handleTabPress(someData, e) {
    // if SHIFT key is held to navigate backwards, exit through this gate
    if (e.shiftKey) {
        console.log('halting event due to SHIFT+TAB');
        return;
    }

    // otherwise, execute normal logic
    console.log('tab was pressed', someData);
},

Só para atualizar isso, já que 2.5.0 vue tem o modificador .exact, que evita exatamente este comportamento:

@keydown.tab.exact="dostuff()"

Isso só funcionará quando a guia for pressionada, não quando shift + tab for pressionada. Veja https://vuejs.org/v2/guide/events.html#exact -Modifier para mais.

Esta página foi útil?
0 / 5 - 0 avaliações