3

我有一个带有 id 的输入框#input。此输入框将在模糊或按下输入按钮时激活一个功能。

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

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

3 回答 3

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
  }
});
于 2013-06-03T02:41:14.863 回答
0

像这样:

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

function blurKeyPressHandler(event) {
    if (event.type == 'keypress') {
        // DO SOMETHING
    }
    else if (event.type == 'blur') {
        // DO SOMETHING ELSE
    }
}
于 2013-06-03T02:54:52.960 回答
0

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

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

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

    $('#input')
    .keypress(dosth)
    .blur(dosth);
`
于 2013-06-03T02:56:44.673 回答