@ keydown.tabは、Shift +タブもキャプチャします。 これは予想される動作ですか? バグの場合は再現します。
はい、それは期待されています。 シフトが押されていないことを明示的に確認する必要があります
これを実現するためのソリューションマークアップは次のとおりです。
<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.0vueには.exact修飾子があるため、この動作を正確に防ぐことができます。
@keydown.tab.exact="dostuff()"
これは、Shift + Tabキーが押されていない場合ではなく、Tabキーが押されている場合にのみ機能します。 詳細については、 https: //vuejs.org/v2/guide/events.html#exact-Modifierを参照して
最も参考になるコメント
これを更新するだけです。2.5.0vueには.exact修飾子があるため、この動作を正確に防ぐことができます。
@keydown.tab.exact="dostuff()"
これは、Shift + Tabキーが押されていない場合ではなく、Tabキーが押されている場合にのみ機能します。 詳細については、 https: //vuejs.org/v2/guide/events.html#exact-Modifierを参照して