我正在使用 jquery 在 div 中上下滑动。
由于某些原因 setTimeout 不工作(看起来像函数范围问题)。
无法弄清楚下面的代码有什么问题。 (这两个函数都在 $(document).ready(function(){ } )
$('.slider-thumb').click(function(){
var source = $(this).attr("src");
$('#image_view').css('background-image',"url("+source+")");
$('#image_view').slideDown(1000, calbck);
initiate_timeout();
function calbck(){}
});
function initiate_timeout(){
var time_out = setTimeout(function() {
$('#image_view').slideUp(1000, calbck);
},2000);
}
最佳答案
缩进源代码表明您确实存在一些范围界定问题。 calbck 函数是点击处理函数私有(private)的,因此对于 initiate_timeout 函数是不可见的。要么使 calbck 成为顶级函数,要么使 initiate_timeout 成为点击处理函数的局部函数。
$('.slider-thumb').click(function() {
var source = $(this).attr("src");
$('#image_view').css('background-image',"url("+source+")");
$('#image_view').slideDown(1000, calbck);
initiate_timeout();
function calbck(){}
});
function initiate_timeout(){
var time_out = setTimeout(function() {
$('#image_view').slideUp(1000, calbck);
}, 2000);
}
关于javascript - 无法让 setTimeout 在 javascript 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7029946/