gpt4 book ai didi

javascript - 使这些 javascript 函数更具可移植性

转载 作者:行者123 更新时间:2023-11-29 18:31:30 25 4
gpt4 key购买 nike

我缺少对 javascript 函数流控制的一些基本理解...

我创建了一个 jquery 幻灯片。节目被分解成逻辑部分,每个部分由一个函数控制(方便以后添加部分)...

function myslideshow() {
section1();
section2();
section3();
}

每个部分都有多个函数,由 jquery 语句、动画、定时的东西组成......所以也许......

function section1() {
firstPart();
setTimeout('secondPart()',5000);
setTimeout('thirdPart()',6000);
}

现在这是我的问题...我想在 section1() 中定义函数“firstPart()、secondPart()、thirdPart()”。我出于各种原因想这样做:

  1. 每个部分在逻辑上可能有自己的“部分”
  2. 部分的可移植性

所以我想将该部分及其所有相应部分保留在该部分内。

我似乎无法让它工作...当我在该部分内定义“部分”时,所有功能都同时运行。

所以理想情况下我想要的是:

function section1() {
firstPart();
setTimeout('secondPart()',5000);
setTimeout('thirdPart()',6000);

function firstpart(){
//some code here
}

function secondPart(){
//some code here
}

function thirdPart(){
//some code here
}

}

但是还是不行;实际上它工作正常我只是没有正确实现它!不确定我是否需要利用函数回调(甚至不确定如何以“可扩展的方式”进行设置)。

另一个需要改进的地方:setTimeouts 用于确保第二部分在第一部分之后运行...想知道是否有更好的方法来“等待”上一个函数(使用 jquery 动画)完成。

我很感激你能提供的任何方向。谢谢!

最佳答案

你错误地调用了“setTimeout()”:

setTimeout(secondPart, 5000);

这将传递对本地函数的引用。当您传递一个字符串时,运行时系统将在全局上下文中计时器关闭时对其进行评估。因此,它不会找到您的本地函数。

关于您的最后一个问题,大多数(如果不是全部)jQuery 动画例程都允许将函数作为最后一个参数传递。该函数在动画完成后运行。同样,在这种情况下,您应该传递对函数的引用,而不是包含函数调用表达式的字符串。 (我怀疑这是否适用于 jQuery。)

关于javascript - 使这些 javascript 函数更具可移植性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663066/

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