Javascript 2个settimeout函数工作,3个已写入
我在一个函数中有3个settimeout函数。 调用淡入淡出效果很好的那个,而不是包含注释的那个 这就是我想要它做的:首先,播放加载条。接下来,淡出该栏并显示一个按钮。 例子: 加载栏并没有很好地工作,但在那之后,一个按钮应该具有toggle_可见性,这将显示它Javascript 2个settimeout函数工作,3个已写入,javascript,jquery,html,Javascript,Jquery,Html,我在一个函数中有3个settimeout函数。 调用淡入淡出效果很好的那个,而不是包含注释的那个 这就是我想要它做的:首先,播放加载条。接下来,淡出该栏并显示一个按钮。 例子: 加载栏并没有很好地工作,但在那之后,一个按钮应该具有toggle_可见性,这将显示它 <script> function toggle_visibility(id) { var e = document.getElementById(id); if (e.style.display =
<script>
function toggle_visibility(id) {
var e = document.getElementById(id);
if (e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
};
function fades() {
//problem settimeout
setTimeout(function(){
$('#button1').toggle_visibility();
}, 5500);
// end of problem
setTimeout(function() {
playDemo('disney', 2, disneyInterval);
}, 1000);
setTimeout(function() {
$('#mydiv').fadeOut();
}, 5000);
};
setTimeout(function() {
fades();
}, 10);
</script>
这段代码表示函数toggle_visibility是jQuery的一个函数。但在代码中,它只是一个函数
您可以像切换“按钮1”一样调用它。这将改变按钮1的显示一次
toggle_visibility(button1)
切换\u可见性不是jquery的功能!所以$.toggle_可见性未定义没错,伙计们。如前所述,您可以做的是将此函数实现到jQuery:
function toggle_visibility(id) {
var e = $('#'+id);
if (e.css('display') == 'block'){
e.css('display', 'none');
}
else {
e.css('display', 'block');
}
}
jQuery.fn.toggle_visibility = function() {
return toggle_visibility(this.attr('id'));
}
现在,您可以像使用1一样使用它来验证是否正在调用回调函数,只需在其中放置一个console.log,并调用类似函数XXX的内容 2 setTimeout中的计时不完美。它保证在您指定的时间过去之前不会调用您的函数,但不保证它完全在请求的时间调用 如果你只是说:
setTimeout(f2, 500);
setTimeout(f3, 600);
它不能保证在f2之后100毫秒调用f3
如果您试图依靠它来运行动画,它们将不会总是平滑的
如果需要链接调用,请让每个回调调用另一个
setTimeout(function() {
console.log("Function 1");
// do stuff
setTimeout(function() {
console.log("Function 2");
// do stuff
setTimeout(function() {
console.log("Function 3")
// do stuff
},0);
}, 500);
}, 1000)
不过,嵌套回调读/写起来很麻烦,所以您可以将其扁平化
function f1() {
console.log("Function 1");
// do stuff
setTimeout(f2, 500)
}
function f2() {
console.log("Function 2");
// do stuff
setTimeout(f3, 1000)
}
function f3() {
console.log("Function 3")
// do stuff
}
setTimeout(f1, 1000)
$'button1'。切换_可见性;未向函数传递任何参数。我猜这就是为什么它不起作用?
function f1() {
console.log("Function 1");
// do stuff
setTimeout(f2, 500)
}
function f2() {
console.log("Function 2");
// do stuff
setTimeout(f3, 1000)
}
function f3() {
console.log("Function 3")
// do stuff
}
setTimeout(f1, 1000)