Javascript 错误:此.style未定义?
很抱歉,我的问题刚刚开始学习javascript 所以我想做一个隐藏slika[0]的函数Javascript 错误:此.style未定义?,javascript,Javascript,很抱歉,我的问题刚刚开始学习javascript 所以我想做一个隐藏slika[0]的函数 function hide() { this.style.display ='none'; }; slika[0] = setTimeout(hide, 4000); 错误是: TypeError: this.style is undefined this.style.display ='none'; 调用hide时,这将是窗口对象,而窗口对象没有样式属性。这就是为什么你会
function hide() {
this.style.display ='none';
};
slika[0] = setTimeout(hide, 4000);
错误是:
TypeError: this.style is undefined
this.style.display ='none';
调用
hide
时,这将是窗口
对象,而窗口
对象没有样式
属性。这就是为什么你会
this.style is undefined
如果您想隐藏slika[0]
,那么您应该使用slika[0]
的hide
函数,如下所示
setTimeout(hide.bind(slika[0]), 4000);
function hideObject(object) {
object.style.display ='none';
}
现在,您已经将slika[0]
绑定到hide
函数。因此,当调用hide
时,this
将引用slika[0]
,并将显示样式设置为none
如果您想要一个泛型函数,您可以简单地接受对象作为参数,如下所示
setTimeout(hide.bind(slika[0]), 4000);
function hideObject(object) {
object.style.display ='none';
}
谢谢你,这很有效。但是,在slika[0]中没有更改的情况下,正确的函数应该是什么呢?所以当我调用hide()时,我隐藏了那个元素?@user3477366过了一段时间你就隐藏了,对吗?所以,这将是我认为最好的方法。实际上,我正在尝试制作图片滑块,slika[0]是第一个。所以我试着把4张图片放在一个位置,然后它们就消失了,这是我的第一个滑块:D。所以我通过创建4个相同的函数(slika[0].style.display)(slika[1],slika[2]等等)来实现它。但我想创建一个函数,当调用它时,它会隐藏调用的元素。很抱歉,这个问题解释得不好。@user3477366那么你不需要计时吗?嗯,我还没有很好的逻辑,但正在练习这个。