如何结合keypress和onclick功能Javascript?

时间:2017-07-24 15:02:52

标签: javascript jquery

我有以下两个功能:

$("input").keypress(function(event) {
    if (event.which == 13) {
       //code        
    }       
});
$('#login_submit').click(function () {        
       //code                    
});

函数中使用的代码完全是相同的代码,基本上是代码重复。所以我想知道是否有办法将这些函数与AND语句结合起来? Stack上有一个问题但它需要一个OR逻辑。如果您想要OR解here

编辑:我正在尝试做一个像探险家的事情。现在我想按住“shift”并点击“输入”来标记它们。所以我需要输入元素上的“onclick”为真,我的keydown才是真的。

2 个答案:

答案 0 :(得分:3)

编辑完成后,我相信您所寻找的内容如下所示。

var shift_hold = false;
$(document).keydown(function(e) {
    if(e.which === 16) {
        shift_hold = true;
    }
})

$(document).keyup(function(e) {
    if(e.which === 16) {
        shift_hold = false();
    }
})

$('input').click(function() {
    if(shift_hold) {
        //your code here
    }
})

答案 1 :(得分:1)

  

我想按住“shift”并点击“输入”来标记它们。所以我需要输入元素上的“onclick”为真,我的keydown才是真的。

click事件中,您可以检查是否还按下了某个键(单击键 - 向下)。

您可以使用event object查看按下了哪些键。 shift / control / alt有自己的显式属性。

示例:

$("input").click(function() {
  console.log(event.shiftKey)
  if (event.shiftKey) {
    $(this).addClass("selected")
  } else {
    $(this).removeClass("selected")
  }
  // could use .toggleClass("selected", event.shiftKey) here,
  // shown expanded for clarity
});
.selected {
  border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Shift-click input to select, click to unselect
<input type='text'>
<input type='text'>