嘿伙计们我试图在addEventListener
我正在使用的代码是
<html>
<body>
<table id="outside">
<tr><td id="t1">one</td></tr>
<tr><td id="t2">two</td></tr>
</table>
<script>
function avis(n) {
return n;
}
var c = document.getElementById('outside');
function babe() {
if(this.avis(c) == 'outside') {
console.log('yuck');
}
}
var el = document.getElementById("outside");
el.addEventListener("click", babe, false);
</script>
上面的代码给出了Uncaught TypeError: undefined is not a function
。
但是当我使用代码时:
function babe() {
if(this.id == 'outside') {
console.log('yuck');
}
}
工作正常..
所以我的问题是......是否可以在回调中调用this.functionname()
的另一个函数?
答案 0 :(得分:1)
this.avis
不是函数,avis
是
function avis(n) {
return n;
}
var c = document.getElementById('outside');
function babe() {
if(avis(c).id == 'outside') {
console.log('yuck');
}
}
var el = document.getElementById("outside");
el.addEventListener("click", babe, false);
&#13;
<table id="outside">
<tr><td id="t1">one</td></tr>
<tr><td id="t2">two</td></tr>
</table>
&#13;
这个内部宝贝是指您在其上创建事件处理程序的元素id:outside
。它在元素上下文中由JavaScript调用(如apply)。但是你不需要avis
功能。只需检查this.id
,除非您需要avis
做其他事情
var c = document.getElementById('outside');
function babe() {
if(this.id == 'outside') {
console.log('yuck');
}
}
var el = document.getElementById("outside");
el.addEventListener("click", babe, false);
&#13;
<table id="outside">
<tr><td id="t1">one</td></tr>
<tr><td id="t2">two</td></tr>
</table>
&#13;