gpt4 book ai didi

javascript - 通过 链接覆盖 jQuery 循环

转载 作者:行者123 更新时间:2023-11-29 20:05:21 25 4
gpt4 key购买 nike

最佳答案

如果你问循环是否可以全局访问,那么简短的回答是

没有

您的cycle 函数是私有(private)函数闭包的一部分。您必须使其成为全局性的才能以这种方式工作。但强烈建议我们不要污染全局范围,因此您应该将此函数应用于该闭包内的链接:

$(function(){
var divs = $('div[id^="content-"]').hide();

var cycle = function() {
// do the thing although you're using globals etc.
}

$("a").click(cycle);
});

无论如何,这是执行此操作的方法,但是除非确实需要它们,否则您必须清理代码以删除全局变量。并了解 jQuery 及其工作原理,不要重复做同样的事情。当你学一点点时,你就会明白我在说什么。

Note: I'm not sure what you mean by override via a link. I've attached to it to click event in my example, but that may not be what you want. You'll have to be much more specific.

在链接点击时快速运行

我建议您让自己的生活轻松一些,并添加如下链接:

<a href="#" class="start-swiffy" data-swiffy="0">Start swiffy 0</a>

改用这段代码:

$(function() {
var divs = $('div[id^="content-"]').hide();

divs.each(function(index) {
$(this).fadeIn(400)
.delay(5000)
.fadeOut(400);

// replaces first if statement
window["Stage" + index] && window["Stage" + index].destroy();

if (index === 0)
{
window["Stage1"] = new swiffy.Stage(document.getElementById('graph_lines'), swiffyobject);
}

if (index === divs.length - 1)
{
window["Stage0"] = new swiffy.Stage(document.getElementById('circle_lines'), circleobject);
}

window["Stage" + ((index + 1) % divs.length)].start();
});

$("a.start-swiffy").click(function(evt) {
evt.preventDefault();
window["Stage" + $(this).data("swiffy")].start();
});
});

即使我仍然不明白为什么您要执行所有那些 div 淡入淡出并删除阶段并以偏移顺序运行它们,以便它们从第二个开始,第一个最后开始?我想这是可以改进的主要部分......

关于javascript - 通过 <a> 链接覆盖 jQuery 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255122/

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