mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-17 09:36:08 +08:00
ui: prevent default action if hotkey captured
This commit is contained in:
1 parent
d311e9366a
commit
c991062738
1 file changed
+5
-3
@@ -29,15 +29,15 @@ function isHotkeyMatch(sortedHotkeyArr, hotkeyStr) {
|
||||
return _.isEqual(sortedHotkeyArr, hotkeyDefined.sort());
|
||||
}
|
||||
|
||||
let triggered = false;
|
||||
function testElementHotkey(hotkey, $element, attr) {
|
||||
if (!$element.is(':visible')) {
|
||||
return;
|
||||
}
|
||||
if (!$element.is(':visible')) return;
|
||||
String($element.attr(attr))
|
||||
.split(',')
|
||||
.forEach((singleDef) => {
|
||||
const [defStr, trigger] = singleDef.split(':');
|
||||
if (isHotkeyMatch(hotkey, defStr)) {
|
||||
triggered = true;
|
||||
switch (trigger) {
|
||||
case 'submit':
|
||||
$element.closest('form').trigger('submit');
|
||||
@@ -66,6 +66,7 @@ const hotkeyPage = new AutoloadPage('hotkeyPage', () => {
|
||||
}
|
||||
hotkey.sort();
|
||||
|
||||
triggered = false;
|
||||
// Find all global hotkeys
|
||||
$('[data-global-hotkey]').get().forEach((element) => {
|
||||
testElementHotkey(hotkey, $(element), 'data-global-hotkey');
|
||||
@@ -75,6 +76,7 @@ const hotkeyPage = new AutoloadPage('hotkeyPage', () => {
|
||||
$(ev.target).parents('[data-hotkey]').get().forEach((element) => {
|
||||
testElementHotkey(hotkey, $(element), 'data-hotkey');
|
||||
});
|
||||
if (triggered) ev.preventDefault();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user