111111111
1111111111111111111111111111
1111111111111111111111111111111
222222222222222222222
2222222222222222222222222
222222222222
3333333333
333333333333333333333333333
具体是这样,我想通过点击按钮来更改字段的显示。例如这样

然后想让点击时,让
字段的opacity透明度从0到1来个过渡,于是我放了一个定时器
但是报错了,并无法出现想要的透明过渡效果。

错误:Uncaught TypeError: Cannot read property 'style' of undefined
但是如果不调用定时器的函数,直接给值却是可以显示的。
oTxt[this.index].style.display='block';
//startMove()
oTxt[this.index].style.opacity=100;
错在哪里了呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
原因就是
this的指向问题,但是我这么更改后你就不会报错了,this的指向的具体情况,百度一下会有很多答案(只有4种情况),你的这个原因就是this指向了全局对象window,而不是你所点击的那个按钮。另外如果你是想要淡入淡出效果的话,你的startMove代码还是有一些问题的。对你代码做了以下的更改,但是更改后代码不兼容低版本ie的兼容。