Vue: @ keydown.tab рд╢рд┐рдлреНрдЯ + рдЯреИрдм рдХреЛ рднреА рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдорд╛рд░реНрдЪ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vuejs/vue

@ keydown.tab рд╢рд┐рдлреНрдЯ + рдЯреИрдм рдХреЛ рднреА рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ? рдЕрдЧрд░ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рд░реЗрдкреНрд░реЛ рдмрдирд╛рдЙрдВрдЧрд╛ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрд╕ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪреВрдВрдХрд┐ 2.5.0 vue рдореЗрдВ .exact рд╕рдВрд╢реЛрдзрдХ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ:

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

рдпрд╣ рддрднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм рдЯреИрдм рджрдмрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рди рдХрд┐ рддрдм рдЬрдм рд╢рд┐рдлреНрдЯ + рдЯреИрдм рджрдмрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП https://vuejs.org/v2/guide/events.html#exact -Modifier рджреЗрдЦреЗрдВред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдБ, рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╢рд┐рдлреНрдЯ рджрдмрд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ

рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдорд╛рд░реНрдХрдЕрдк рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

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

рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░, рдЖрдк $event рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ SHIFT рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ:

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);
},

рдмрд╕ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪреВрдВрдХрд┐ 2.5.0 vue рдореЗрдВ .exact рд╕рдВрд╢реЛрдзрдХ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ:

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

рдпрд╣ рддрднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм рдЯреИрдм рджрдмрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рди рдХрд┐ рддрдм рдЬрдм рд╢рд┐рдлреНрдЯ + рдЯреИрдм рджрдмрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП https://vuejs.org/v2/guide/events.html#exact -Modifier рджреЗрдЦреЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Jokcy picture Jokcy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

6pm picture 6pm  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

seemsindie picture seemsindie  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

loki0609 picture loki0609  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

paulpflug picture paulpflug  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ