我正在尝试计算三角形,并且现在正在尝试我的代码,因此我需要制定一种算法来计算三角形,而不是对其进行硬编码。我需要抓住事件侦听器的目标,但是target
无法正常工作,我也不知道为什么或如何解决它。 target
引用事件侦听器之前的aV && a
,它们都是输入字段。
function calc(){
if (target.value.length > 0){
console.log("hooray");
};
};
aV && a.addEventListener("keydown", function(ev){
if(ev.keyCode == 13){
calc();
};
});
答案 0 :(得分:1)
整个addEventListener
语句是有条件的,等同于go:
true && true;
它什么都不做。添加if
语句(还要确保将ev.target
作为参数传递给calc
:
function calc(target){
if (target.value.length > 0){
console.log("hooray");
};
};
if (aV) {
a.addEventListener("keydown", function(ev){
if(ev.keyCode == 13){
calc(ev.target);
};
});
}
答案 1 :(得分:1)
您可以使用forEach()
遍历它们。您还必须将调用函数传递给目标。
function calc(target){
if (target.value.length > 0){
console.log("hooray");
};
};
[aV, a].forEach(function(el){
el.addEventListener("keydown", function(ev){
if(ev.keyCode == 13){
calc(ev.target);
};
});
});
答案 2 :(得分:0)
处理事件的函数应如下所示:
function calc_keydownHandler(e){
var target = e.target;
//do something with the target now
}
因为您有target的参数,所以引用将是target.target,这没有任何意义。