Vue: @keydown.tab menangkap shift + tab juga

Dibuat pada 6 Mar 2017  ·  3Komentar  ·  Sumber: vuejs/vue

@keydown.tab menangkap shift + tab juga. Apakah ini perilaku yang diharapkan? Jika itu bug, saya akan membuat repro.

Komentar yang paling membantu

Hanya untuk memperbarui ini, karena 2.5.0 vue memiliki pengubah .exact, yang mencegah persis perilaku ini:

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

Ini hanya akan berfungsi saat tab ditekan, bukan saat shift + tab ditekan. Lihat https://vuejs.org/v2/guide/events.html#exact -Modifier untuk lebih lanjut.

Semua 3 komentar

Ya, itu diharapkan. Anda harus secara eksplisit memeriksa bahwa shift tidak ditekan

Inilah markup solusi untuk mencapai ini:

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

Di dalam fungsi handler, Anda dapat mendeteksi apakah SHIFT ditahan dengan memeriksa $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);
},

Hanya untuk memperbarui ini, karena 2.5.0 vue memiliki pengubah .exact, yang mencegah persis perilaku ini:

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

Ini hanya akan berfungsi saat tab ditekan, bukan saat shift + tab ditekan. Lihat https://vuejs.org/v2/guide/events.html#exact -Modifier untuk lebih lanjut.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat