如果点击OR keydown

时间:2010-09-15 09:38:17

标签: javascript jquery

在jQuery中有一种方法可以使用:

if (button.click() || (keydown == 39)) {
   //stuff
}

4 个答案:

答案 0 :(得分:8)

您可以bind()参加多个活动:

$(button).bind("click keydown", function (evt) {
    if (evt.type == "keydown" && evt.which == 39)
        alert("Key 39 pressed");
    else if (evt.type == "click")
        alert("Clicked!");
});

示例:http://jsfiddle.net/Bymug/

请注意,空格键和输入键也可能会触发按钮上的点击事件。

答案 1 :(得分:8)

function stuff(e) { alert('Something happened'); }

$('input[type=button]').click(function(e) { 
    stuff(e);
});

$(document).keydown(function(e) { 
    if (e.keyCode == 39) { stuff(e); }
});​​​

http://www.jsfiddle.net/4WuB5/

答案 2 :(得分:3)

您可以使用live事件并处理多个事件:

$('.someClass').live('keydown mouseclick', function(event) {
  if (event.type == 'mouseclick') {
      // Do something
  } else if (event.type == 'keydown' {
      if (event.keyCode == '39')
      {
          // Do something
      }   
  }
});

答案 3 :(得分:3)

不,它们是单独的事件,因此您必须单独连接它们。您可以使用命名函数从每个事件中调用:

function x() {
  ...
}

$('.someclass')
  .click(x)
  .keydown(function(e){
    if (e.keyCode == 39) x(e);
  });