我正在尝试将一个类添加到我html
中的div中,但是希望在此之前添加一个延迟。
我在下面有以下代码,但它似乎没有应用任何类型的延迟。谁能告诉我我做错了什么?
$("#globe").on('ended',function() {
setTimeout(
$('.faculty-info').addClass('cbp-spmenu-open'),
5000);
});
答案 0 :(得分:2)
setTimeout
需要一个函数定义作为第一个参数,所以在匿名函数中包装你想做的任何事情,比如下面的文件
setTimeout(function(){
$('.faculty-info').addClass('cbp-spmenu-open')
}, 5000);
答案 1 :(得分:0)
你应该在function
中包裹你的代码(以延迟方式执行的指令)。
$("#globe").on('ended',function() {
setTimeout( function() {
$('.faculty-info').addClass('cbp-spmenu-open')
}, 5000);
});
您可能还需要声明一个变量来保存超时值。这将使您有可能在需要时清除它:
//Global timeout variable
var timeOut;
$("#globe").on('ended',function() {
timeOut = setTimeout( function() {
$('.faculty-info').addClass('cbp-spmenu-open')
}, 5000);
});
答案 2 :(得分:0)
您可以使用jQuery的.delay()
和.queue()
来处理此问题:
$("#globe").on('ended', function () {
$('.faculty-info').delay(5000).queue(function () {
$(this).addClass('cbp-spmenu-open').dequeue();
});
});
Here's a JSFiddle。另见:jQuery: Can I call delay() between addClass() and such?