为同一元素绑定多个事件,然后过滤特定操作

时间:2011-08-23 15:14:15

标签: jquery

我正在尝试将模糊和keyup事件处理程序绑定到文本框;我只希望逻辑在所有模糊事件和keyup事件上执行,只有在用户按Enter / return(代码13)时才会执行。如果我能分辨出哪些事件被捕获了,这应该很简单,但我似乎无法找到描述我需要寻找什么的东西。简单回答的几点简单。

3 个答案:

答案 0 :(得分:16)

您可以使用jQuery event object获取有关该事件的信息。 event.type会告诉您哪个事件已被触发。

$('#textBox').bind('blur keyup', function(e){
   if( e.type === 'blur' || (e.type === 'keyup' && e.which === 13) ){
     // Code...
   }
});

您还可以查看undefinedblur事件为$('#textBox').bind('blur keyup', function(e){ if( typeof e.which === 'undefined' || e.which === 13 ){ // Code... } }); 时的event.which

{{1}}

答案 1 :(得分:2)

使用event.type

$('input:text').bind('keyup blur',
                     function(e){
                         alert(e.type);
                     });

JS Fiddle

$('input:text').bind('keyup blur',
                     function(e){
                         var t = e.type;
                         if (t == 'blur'){
                             $(this).css('background-color','red');
                         }
                         else if (t== 'keyup') {
                             $(this).css('background-color','green');
                         }
                     });

JS Fiddle demo

参考:

答案 2 :(得分:0)

$('input').keyup(function(e){

    var code = (e.keyCode ? e.keyCode : e.which);

    if(code == 13) /* enter was pressed */
        your_function();

});