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 />');
})
});