如何在jquery中设置多个动作

时间:2012-02-26 17:50:54

标签: jquery

我有这样的事情:

$('#find').click(function() {...  

我还需要添加到该事件,如果他们按下回车键,它也将执行。

我正在思考以下几点:

var code = (e.keyCode ? e.keyCode : e.which);  
if ( ($('#find').click()) || (code == 13)) {

但显然它不起作用。如何将两种方式合并为一种方式。按Enter键应仅在输入id =“code”时完成。 click事件用于另一个id =“find”的输入类型按钮。我想合并它们,如果用户在键入代码时按Enter键或单击按钮发送代码,则两种方式都以相同的方式工作。

3 个答案:

答案 0 :(得分:4)

你可以这样做:

function myHandler(){
  $(this).css('background-color', 'green'); //whatever you need to do here
}
$('#find').click(myHandler); 
$('#find').keypress(function(){
   var code = (e.keyCode ? e.keyCode : e.which);  
   if(code == 13) myHandler();
); 

或者可能使用keyup,您应该阅读以下文档:http://api.jquery.com/keyup/

答案 1 :(得分:1)

使用on()

$('#find').on('click keypress', function(e){
    if (e.type == 'click' || e.which == '13') {
        // do stuff
    }
});

JS Fiddle demo

参考文献:

答案 2 :(得分:0)

对此的扩展是:

$('#find').on('click',function(event,params) {

  // your click code here    

}).on('keypress'),function(event) {

  // if you have 13, then send the click evnet
  // this way lets you do other things by passing the params
  // object, if you wish

  var code = (e.keyCode ? e.keyCode : e.which);
  if(13 == code) {
    $(this).trigger('click');
    return false;
  }

  // other code that executes if code != 13

});