我在一个函数中有3个settimeout函数。 调用fades()的那个工作正常,而不是包含注释的那个。
这就是我想要它做的事情:首先,播放加载栏。接下来,淡出栏并显示一个按钮。 示例:https://jsfiddle.net/Thomaszhang19/j2p0eot4/ 加载栏不起作用,但之后一个按钮应该有toggle_visibility(),这将显示它。
500000 X 2 X 500000
答案 0 :(得分:1)
$('#button1').toggle_visibility();
此代码表示函数toggle_visibility
是jQuery的函数。但是在你的代码中,它只是一个函数。
您可以像toggle_visibility('button1')
一样调用它。这将改变button1的显示一次。
答案 1 :(得分:0)
toggle_visibility(button1)
" toggle_visibility"不是jquery的功能!所以$()。toggle_visibility未定义
答案 2 :(得分:0)
那是对的家伙。如前所述,这里你可以做什么 - 将这个函数实现为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'));
}
现在你可以像使用它一样使用它了)
答案 3 :(得分:0)
1)要验证是否正在调用您的回调函数,您只需在其中放置一个console.log,其中包含"函数XXX,名为"。
2)setTimeout中的时间并不完美。它保证在您指定的时间过去之前不会调用您的函数,但 NOT 保证在请求的时间完全 。
所以,如果你只是说:
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)