【问题标题】:Simulate ArrowDown in an input when I place the cursor over it当我将光标放在输入中时模拟 ArrowDown
【发布时间】:2020-09-23 17:56:36
【问题描述】:

我在这里努力弄清楚如何实现以及将 Jquery 用于以下目的的方法。

场景:

用户将鼠标光标放在输入上,它必须在该输入中自动模拟按键(KeyCode:40)。此事件用于自动调用仅由该键触发的列表。每当用户将光标放在输入上时,他必须自动模拟按键。目前用户必须点击向下箭头,但我希望这个过程是自动的

$( "#input" ).click(function() {
    $("#input").trigger(jQuery.Event('ArrowDown', { keycode: 40 }));   
});

感谢您的帮助。我在这里没有想法:(

【问题讨论】:

标签: javascript jquery events input


【解决方案1】:

function arrowDown(ev) {
  console.log(`Arrow down by ${ev.type}`);
}

$('input[name="foo"]').on({
  mouseenter: arrowDown,
  keydown(ev) { if (ev.key === "ArrowDown") arrowDown(ev); },
});
<input type="text" name="foo">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

或者直接使用事件:

function arrowDown(ev) {
  if (ev.key === "ArrowDown") {
      console.log(`Arrow down by ${ev.type}`);
  }
}

$('input[name="foo"]').on({
  keydown: arrowDown,
  mouseenter(ev) {
    $(this).trigger( jQuery.Event({type: "keydown", key: "ArrowDown"}) )
  }
});
<input type="text" name="foo">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

【讨论】:

  • 谢谢。不幸的是,它没有用。首先,当我做鼠标悬停时激活该功能。我希望它是当用户将光标放在输入上时。因此点击。然后我没有模拟 keydown :(。我添加的功能会导致某个部分。当我点击它时,它会激活但由于某种原因我无法模拟 ArrowDown
猜你喜欢
  • 2011-12-18
  • 2014-08-12
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 2013-07-20
  • 2019-12-20
  • 2019-11-09
  • 1970-01-01
相关资源
最近更新 更多