Javascript “的多个事件侦听器”;输入“;事件
我知道您可以为“单击”事件添加多个事件侦听器,如下所示:Javascript “的多个事件侦听器”;输入“;事件,javascript,jquery,javascript-events,event-handling,handler,Javascript,Jquery,Javascript Events,Event Handling,Handler,我知道您可以为“单击”事件添加多个事件侦听器,如下所示: $("input").bind("click",function(e){ console.log("one"); }) $("input").bind("click",function(e){ console.log(two); }) 但是,如何为“输入”事件添加多个事件侦听器呢? 我尝试了这个方法,但似乎只得到了最后一个事件侦听器: $("input").bind("input",fun
$("input").bind("click",function(e){
console.log("one");
})
$("input").bind("click",function(e){
console.log(two);
})
但是,如何为“输入”事件添加多个事件侦听器呢?
我尝试了这个方法,但似乎只得到了最后一个事件侦听器:
$("input").bind("input",function(e){
console.log("one");
})
$("input").bind("input",function(e){
console.log("two");
})
当我键入内容时,控制台中只有“两个”
这是console.log($.\u数据($($(“输入”)[0],“事件”)的结果代码>:
Object {click: Array[2], input: Array[1]}
我没有问题:请查看此
但我认为重新组织代码会更好:
var printOne = function(e){
console.log("one");
},
printTwo = function(e){
console.log("two");
};
$("input").on("click", function () {
printOne();
printTwo();
});
属性绑定不再使用:
对我来说很好:我不确定你在这里尝试什么。将同一事件附加到同一组元素上两次?只是为了确保,它是
console.log('two')
,而不是console.log(两个)
@theonlygust似乎我的代码是错误的(我在不同的上下文中使用它)问题解决了。我的脚本中似乎有一些“坏代码”。谢谢你抽出时间!“属性绑定已弃用”,input()、focus()和其他与事件相关的方法是绑定的快捷方式(“blah”)!bind:function(types,data,fn){return this.on(types,null,data,fn);},这并不是一个很好的使用方法,因为在最后它会被使用。@ariel_556它不会使它被弃用,从文档:到jQuery 1.7,.on()方法是将事件处理程序附加到文档的首选方法。对于早期版本,.bind()方法用于将事件处理程序直接附加到元素。处理程序附加到jQuery对象中当前选定的元素,因此这些元素必须在调用.bind()时存在。有关更灵活的事件绑定,请参阅.on()或.delegate()中的事件委派讨论。
,我并不是说它不推荐使用。