簡體   English   中英

如何通過按其他鍵來模擬按鍵

[英]How to simulate a key press by pressing a different key

當我開始在Wordpress搜索插件上輸入內容時,我想隱藏搜索輸入下方顯示的“建議”選項列表,我需要具體的是當我按下“刪除”鍵時觸發“Escape”鍵事件,我嘗試了以下jquery函數,但它沒有像我預期的那樣工作。

$('form.search-form').keydown(function (e) {

// keycode for Delete key
if (e.keyCode == 46) {
      var a = $.Event("keydown");
      // keycode for Esc key
      a.which = 27;
      a.keyCode = 27;
      $(document).trigger(a); 
}});

有幫助嗎? 提前致謝

更新(原始問題不清楚)

現場演示(點擊)。

按下刪除鍵時,將keyCode更改為esc鍵,然后使用trigger模擬按下esc

$('input').keydown(function (e) {
  // keycode for delete
  if (e.keyCode == 46) {
    console.log('delete key pressed.');
    e.keyCode = 27;
    $(this.target).trigger(e);
  }
});

$('input').keydown(function (e) {
  // keycode for esc
  if (e.keyCode == 27) {
    console.log('esc key pressed.');
  }
});

舊的答案(留在這里,因為它是相似的。)

你的問題是X / Y問題 您不需要觸發另一個keydown事件,您只需要重復相同的功能,因此將esc事件的代碼提取到函數中並在del key的事件中重用。 現場演示(點擊)。

$('input').keydown(function (e) {
  // keycode for delete
  if (e.keyCode == 46) {
    myFunction(e);
  }
});

$('input').keydown(function (e) {
  // keycode for esc
  if (e.keyCode == 27) {
    myFunction(e);
  }
});

function myFunction() {
  alert('Look, Ma! Code reuse!'); 
}

更好的是,做到這一點!

現場演示(點擊)。

 $('input').keydown(function (e) { // keycodes for delete and esc if (e.keyCode == 46 || e.keyCode == 27) { myFunction(e); } }); function myFunction() { alert('Look, Ma! Code optimization!'); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM