gpt4 book ai didi

javascript - HTML Javascript 类 - 函数未启动

转载 作者:行者123 更新时间:2023-11-30 12:51:54 26 4
gpt4 key购买 nike

在过去的一周里,我一直在自学 HTML 的 Javascript。主要来自w3schools。我正在尝试制作两个函数 - 一个在 body/window onload 事件上运行,然后这将触发更新函数,它将无限期地重复,每 10/100 步。

我基本上是在制作一个将由 Javascript 严格控制的网站。我需要创建此模板,以用于我计划构建的系统(响应式布局 + 内容,可调整屏幕大小)。

初始启动函数不影响任何 div。这是为什么?

<!DOCTYPE html>
<html>
<head>
<script>
// STARTUP
function startupClass(classnm)
{
// scan through all divs, altering size accordingly.
classid = document.getElementsByClassName(classnm);

for(i=0;i<classid.length;i+=1)
{
// apply style to each div class
classid[i].style.position="absolute";
classid[i].style.width=(screen.availWidth/classid.length);
classid[i].style.height="300px";
classid[i].style.top="0px";
classid[i].style.left=i*(screen.availWidth/classid.length);
classid[i].style.backgroundColor="#f3f3f3";
}

setTimeout(updateClass(classnm),1);
}
// jump to update function (Which then automatically updates, every step)

// UPDATE FUNCTION
function updateClass(classnm);
{
setTimeout(updateClass(classnm),10);
}

window.onload = startupClass("newclass");
</script>
</head>
<body onload="startupClass('newclass');">
<div class="newclass"></div>
<div class="newclass"></div>
<div class="newclass"></div>
<div class="newclass"></div>
</body>
</html>

我可能犯了一个明显的错误,但 window.onload 或 body 标签 onload 都没有触发函数?

如果这是一个明显的错误,请原谅我 - 我是 Javascript 的新手。

回答:

语法有一些错误——首先是在 updateClass() 之后意外放置了分号; {} - 然后 setTimeout() 语法出现错误 - 为“setTimeout(updateClass(classnm),1);”,更改为“setTimeout(updateClass,1,classnm);”。

控制台不再返回任何错误 - 但 div 仍未设置样式。这是因为 startupClass() 函数在放置 div 之前运行!为了解决这个问题,我简单地做了一个非常基本的函数,然后在第一步之后触发了 startupClass 函数:

<head>
<script>
//--------------STARTUP
function startupClassInit(classnm)
{
setTimeout(startupClass,1,classnm);
}

function startupClass(classnm)
{
// scan through all divs, altering size accordingly.
classid = document.getElementsByClassName(classnm);
for(i=0;i<classid.length;i+=1)
{
// apply style to each div class
classid[i].style.position="absolute";
classid[i].style.width=(screen.availWidth/classid.length)+"px";
classid[i].style.height="300px";
classid[i].style.top="0px";
classid[i].style.left=i*(screen.availWidth/classid.length)+"px";
classid[i].style.backgroundColor="#AA0000";
}
// jump to update function (Which then automatically updates, every step)
setTimeout(updateClass,1,classnm);
}

//--------------UPDATE FUNCTION
function updateClass(classnm)
{
classid = document.getElementsByClassName(classnm);
for(i=0;i<classid.length;i+=1)
{

}
setTimeout(updateClass,100,classnm);
}

window.onload = startupClassInit("newclass");
</script>
</head>

这现在工作正常:)感谢大家的建议和帮助。

最佳答案

我真的会说,看看 jQuery。

$(document).ready(function() {
// some functions
}

这将在页面加载后运行函数或将函数绑定(bind)到元素,因为有时您想向元素添加一些功能,但它们在页面创建期间不存在,但函数已经存在:)

关于javascript - HTML Javascript 类 - 函数未启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com