Javascript jQuery-绑定多个事件并排除其他事件

Javascript jQuery-绑定多个事件并排除其他事件,javascript,jquery,Javascript,Jquery,我有一个包含和表单元素的搜索表单。听着这个表格,我得到了这个jQuery $('#searchform :input').stop().on('keyup change',function(){ // do some ajax stuff }) 棘手之处在于脚本使用.on('keyup change'等)侦听多个事件的方式。这很好,但有个问题 当输入字段失去焦点时,将触发脚本jquery侦听器 这里有一个演示来解释我的意思 我想做这样的事 $('#searchform :input')

我有一个包含
表单元素的搜索表单。听着这个表格,我得到了这个jQuery

$('#searchform :input').stop().on('keyup change',function(){
    // do some ajax stuff
})
棘手之处在于脚本使用
.on('keyup change'等)
侦听多个事件的方式。这很好,但有个问题

当输入字段失去焦点时,将触发脚本jquery侦听器

这里有一个演示来解释我的意思

我想做这样的事

$('#searchform :input').stop().on('keyup change not:blur',function(){
    // do some ajax stuff
})

…但显然这是胡说八道。我能做什么?

问题是因为当
输入
字段失去焦点,并且当所选的
选择
选项被修改时,会触发
更改
事件。要实现所需,需要分别绑定事件。试试这个:

$(document).ready(function () {
    $('input').keyup(stuffHappened);
    $('select').change(stuffHappened);
})

function stuffHappened() {
    $('#report').append('stuff happened<br />');
}

因此,我建议使用前一种方法。

尝试用
输入
事件替换
更改
键控
事件

$(document).ready(function () {
    $(':input').on('input',function(e) {
        $('#report').append('stuff happened<br />');
    })
});
$(文档).ready(函数(){
$(':input')。在('input',函数(e)上{
$(“#报告”).append('stuff coursed
'); }) });

jsiddle

更改
处理程序导致了这种情况,因为它只在元素失去焦点时才会触发。试着删除“change”eventTop答案,并且解释得很好-谢谢:)不得不单独绑定这些事件真是太遗憾了-我的听众太整洁了。但必须如此!:)哦,没错!更简洁,不需要我显着重建我的功能。干得好。
$(document).ready(function () {
    $(':input').on('input',function(e) {
        $('#report').append('stuff happened<br />');
    })
});