【发布时间】:2016-12-19 14:03:19
【问题描述】:
我不能让JQuery 在函数执行前等待一秒钟。当user 打开网页时,JQuery 脚本会显示通知。目前,所有通知都会立即显示,但我希望它们在例如 1000 毫秒后被一一添加。
我尝试了setInterval 和setTimeOut,但没有任何效果。
我的代码 - 通知仍在同时显示。
function showLobiboxNotification(msg, onClickUrl) {
Lobibox.notify('info', {
title: 'Notification',
delay: false,
msg: msg,
sound: false,
position: 'left bottom',
showClass: 'fadeInDown',
hideClass: 'fadeUpDown',
rounded: 'true',
onClickUrl: onClickUrl
});
setTimeout('showLobiboxNotification', 1000)
}
$(document).ready(function () {
$.ajax({
type: 'GET',
url: "/ajax/get-base-notifications/",
success: function (data) {
$.each(data, function (k, message) {
setTimeout(showLobiboxNotification(message['msg'], message['url']),1000);
});
}
});
});
你有什么想法吗?
【问题讨论】:
-
这闻起来像XY question。为什么要暂停?您(尝试)在超时内创建超时,这将非常奇怪。
-
您是否尝试过触发自定义事件并捕获它们? (参见触发方法)请记住,setTimeout 并不意味着“等待”,它只是在一秒钟后将函数调用添加到事件循环中。
-
AJAX 返回如下内容: {'message1':{'msg':'This is a message','url':'Some url'}, 'message2':{'msg' .....对于每个消息1,消息2...我调用上面的函数来创建一个通知。我想要的是在通知之间设置一些延迟。
-
或者你可以简单地使用:
showAfterPrevious: true
标签: javascript jquery