簡體   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