Javascript 单击属性时如何停止延迟
通过测试,我试图找出如果单击另一个属性,如何停止延迟。我会发布网站地址,以便更好地解释这个问题,但基本上,当你按menu时,我的导航会延迟出现,当我按Assignment 6时,我希望所有其他内容都隐藏起来,它确实会这样做,但是我看到了,因为它隐藏时有一个延迟,它没有完成延迟,它将继续打印出其余的元素,即使它们应该被隐藏。这也是一个免责声明,我以前在这个网站上受到了很大的热议,因为我认为人们认为我期望得到答案。事实并非如此,我喜欢学习,虽然答案会很有帮助,而且我能够去设计它并学习它,但我更愿意得到一些指导。所以,是的,如果有人认为这就是我在这里的目的,我不仅仅是在寻找答案(当我无法找到其他方法时,我来到这里) 我的jQuery脚本:Javascript 单击属性时如何停止延迟,javascript,jquery,html,Javascript,Jquery,Html,通过测试,我试图找出如果单击另一个属性,如何停止延迟。我会发布网站地址,以便更好地解释这个问题,但基本上,当你按menu时,我的导航会延迟出现,当我按Assignment 6时,我希望所有其他内容都隐藏起来,它确实会这样做,但是我看到了,因为它隐藏时有一个延迟,它没有完成延迟,它将继续打印出其余的元素,即使它们应该被隐藏。这也是一个免责声明,我以前在这个网站上受到了很大的热议,因为我认为人们认为我期望得到答案。事实并非如此,我喜欢学习,虽然答案会很有帮助,而且我能够去设计它并学习它,但我更愿意得
$(document).ready(function () {
//$('ul').hide();
$('ul li').hide();
$('nav>li').hide();
$('nav>h1>').click(function (event) {
event.preventDefault();
$('nav>ul li:hidden').each(function(i) {
$('nav>li').show();
$('nav>h1').hide();
$(this).delay(i*600).fadeIn(200);
});
$('nav>ul li:visible').each(function(i) {
$('nav>h1').hide();
$(this).delay(i*600).fadeOut(200);
});
return false;
}); //closes a.btnDown
$('nav>li').click(function (event) {
$('nav>h1').show();
$('nav>li').hide();
$('ul li').hide();
return false;
}); //closes a.btnDown
}); //closes .ready
您可以用
setTimeout
替换延迟,并用cleartimout
$('nav>ul li:hidden').each(function(i) {
$('nav>li').show();
$('nav>h1').hide();
var fadeTimeout = setTimeout(function () {
$(this).fadeIn(200);
}, i * 600);
});
$('nav>li').click(function (event) {
$('nav>h1').show();
$('nav>li').hide();
$('ul li').hide();
clearTimeout(fadeTimeout);
return false;
});
setTimeout是一种有用的机制,可以解决您的问题。它等待(至少)指定的延迟,并执行回调函数
var elements = $('nav>ul li:hidden');
var timeoutId;
function doAnimation(index) {
timeoutId = window.setTimeout(function () {
if (index < elements.length) {
$(elements[index]).fadeIn(200);
doAnimation(++index);
}
}, 600);
}
我已经做了一个小提琴来演示这个概念,但是我还没有实现一个完整的解决方案。希望这能帮助你进一步完成你的项目
如果我是用C#或任何编程语言编写的,这将是一个循环,我还不知道jquery是否有循环。javascript和jquery都有循环。javascript有布尔值。jQuery是用javascript构建的。你可以用javascript,你的意思是一个简单的if语句,对吗?“我以前在这个网站上得到了很多热,因为我认为人们认为我期待答案”——对于那些人,我只能说“如果不是提供答案,问答网站还有什么其他用途?”我很接近,然后我试着做一个clearQueue(),我发现当我做你的时,虽然它根本不做导航动画。
window.clearTimeout(timeoutId);