2013-06-03 19 views
3

我有一个输入框,编号为#input。此输入框将在模糊或进入按钮按下时启动功能。如何检测任一事件触发器?

如何将两个事件合并为一个?

$('#input') 
.keypress(function(e)) 
.blur(function(event) { 
    //Do something 
}); 

回答

9

使用bind()。多个事件类型可以一次通过包括每一个用空格隔开的约束:

$('#input').bind('keypress blur', function(event) { 
    //Do something 
}); 

,或者您可以通过传递事件类型/处理程序对一个对象同时结合多个事件处理程序:

$('#foo').bind({ 
    keypress : function(e) { 
    e.preventDefault(); 
    if(e.which == 13) { //Detects enter key depressed! 
    // do something on keypress 
    } 
    }, 
    blur: function() { 
    // do something on blur 
    } 
}); 
+0

如何检测输入按钮? – user1761160

+0

您需要一个专门针对要按的键的事件,因为它不直接与任何页面元素相关。 –

+0

我懂了很多。 – user1761160

0

像这样:

$('#input').on('blur keypress', blurKeyPressHandler); 

function blurKeyPressHandler(event) { 
    if (event.type == 'keypress') { 
     // DO SOMETHING 
    } 
    else if (event.type == 'blur') { 
     // DO SOMETHING ELSE 
    } 
} 
0

你是说这两个事件会调用同一个函数吗?

您可以定义一个函数,并在事件触发时调用它。

` function dosth (event) { 
    //Do something 
    }; 

    $('#input') 
    .keypress(dosth) 
    .blur(dosth); 
` 
相关问题