我有这个简单的功能,它向用户显示一条消息。如果我添加超时参数,它将自动滑回,如果不是用户必须单击它以摆脱。但超时位不起作用。
function feedback(text, timeout){
$('#feedback').text(text).slideDown('fast');
$('#feedback').click(function(){
$(this).slideUp();
});
if(timeout){
setTimeout(function(){
$('#feedback').slideup();
}, timeout);
}
}
答案 0 :(得分:3)
问题在于$('#feedback').slideup();
需要资金U
(例如.slideUp()
)。你也可以整体缩短它:
function feedback(text, timeout){
var fb = $('#feedback').text(text).slideDown('fast');
if(timeout) fb.delay(timeout).slideUp();
fb.click(function(){
$(this).slideUp();
});
}
这使用jQuery的内置delay()
功能以更简洁的方式实现相同的效果。
答案 1 :(得分:-3)
将整个函数调用置于set timeout函数中无效。你的setTimeout永远不会像你想要的那样触发,因为setTimeout只会接受一个函数引用。
setTimeout(function(){
$('#feedback').slideup();
}, timeout);
请尝试以下代码:
var ref = function() {
$('#feedback').slideup();
};
setTimeout(ref, timeout);