繁体   English   中英

将事件侦听器附加到FOR循环内的对象

[英]Attaching an event listener to an object inside a FOR loop

我试图找出一种附加事件监听器的方法。

我有以下变量:

var inputs = data.context.find(':input').not(':button');

并且,在代码的后面,我有一个FOR循环,在该循环中,我使用此循环将CSS类添加到某些字段:

inputs[i].className += " invalidEntry";

很好

我想做的是也将事件处理程序附加到这些相同的字段,以便当更改字段中的值时,将删除css类名。

那么,如何在FOR循环中将事件侦听器附加到input [i]?

像这样添加:

function change(){
    // this refers to the element that had the keypress event fired on it.
    this.className=this.className.replace(" invalidEntry","");
}
for(var i=0;i<inputs.length;i++){
    inputs[i].className += " invalidEntry";
    inputs[i].addEventListener('keypress',change);
}

change功能仅需要定义一次,并一次又一次地使用,因为this关键字将引用被keypress的元素,因此它将始终是input s之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM