<script>
let arr=document.getElementsByClassName("img");
let arr1=document.getElementsByClassName("index2")
var len=0;
var along=arr.length;
function g()
{
if(len==along){len=0;}{
for(let i=0;i<along;i++)
{
arr[i].style.display="none";
arr1[i].style.backgroundColor="rgba(1,1,1,0.2)";
arr1[i].style.boxShadow="none";
}
arr1[len].style.boxShadow="0 0 2px 5px rgba(255,255,255,0.3)";
arr1[len].style.backgroundColor=" rgba(255,255,255,1)";
arr[len].style.display="block";
len++;
for(var j=0;j<along;j++){
arr[j].onmouseover=function()
{
clearInterval(timeeer);
clearInterval(timeer);
}
arr[j].onmouseout=function(){
var timeer=setInterval("g()",2000);
break;
}
}
}
}
g();
var timeeer=setInterval("g()",2000)
我想在arr[j].onmouseout=function(){}里面用break但是报错
如图:
break
已经不是在for
里了,而是在一个函数里(onmouseout 的处理函数)。不过你好像已经意识到了这个问题。break 用于跳出循环。中断函数执行用 return。
一方面,这里处理函数的执行时机和 for 循环的执行时机是完全分离的。函数执行的时候 for 可能早都执行完了。
另一方面,处理函数的作用域、上下文和 for 语句所在的作用域、上下文不同。不能在子级上下文中中断外面的 for 循环。