Jquery 引导:按顺序打开模态
我正在尝试构建自己的消息提示、错误、警告等插件,但我希望允许消息排队 我这样做的方式是在我的html中包含一个单一模式(这样我也可以包含诸如“错误”、“警告”或使用JSTL翻译的消息类型的标准名称),并使用以下方法调用它:Jquery 引导:按顺序打开模态,jquery,twitter-bootstrap,Jquery,Twitter Bootstrap,我正在尝试构建自己的消息提示、错误、警告等插件,但我希望允许消息排队 我这样做的方式是在我的html中包含一个单一模式(这样我也可以包含诸如“错误”、“警告”或使用JSTL翻译的消息类型的标准名称),并使用以下方法调用它: function message(messageText, messageType) { $('#message').text(messageText); $('#messageIcon').removeClass(); if (messageType
function message(messageText, messageType) {
$('#message').text(messageText);
$('#messageIcon').removeClass();
if (messageType == messageTypes.ERROR) {
$('#messageIcon').addClass("glyphicon glyphicon-remove-circle text-danger");
$('#messageHeader').text($(" " + '#ERROR').text());
} else if (messageType == messageTypes.WARNING) {
$('#messageIcon').addClass("glyphicon glyphicon-warning-sign text-warning");
$('#messageHeader').text(" " + $('#WARNING').text());
} else if (messageType == messageTypes.INFO) {
$('#messageIcon').addClass("glyphicon glyphicon-info-sign text-primary");
$('#messageHeader').text(" " + $('#INFO').text());
}
$('#messageModal').modal();
}
但这只允许在仍显示模式时更改模式,因此只显示最后一条消息。
我已尝试将该函数的代码包装为:
$('#messageModal').on('hidden.bs.modal', function (e) {
//above code
}
我认为只有当模态处于隐藏状态时才触发函数是合乎逻辑的。。。但这不起作用。
有没有办法解决这个问题,或者我是不是走错了路?使用jQuery.queue()在队列中实现消息传递。欲了解更多信息,请查看 我没有做任何修改就离开了你的函数,只在队列中添加了一些消息,并添加了按钮来逐个启动队列
var messages = $({});
var messageTypes = {ERROR: 'ERROR', WARNING: 'WARNING', INFO: 'INFO'};
$.each([
{message: 'message1', type: 'ERROR'},
{message: 'message2', type: 'WARNING'},
{message: 'message3', type: 'INFO'}],
function(i, data)
{
messages.queue('messages', function()
{
message(data.message, data.type)
});
}
);
$("<button>", {
text: 'show message',
click: function () {
showNextQueuedMessage()
}
}).appendTo('body');
function showNextQueuedMessage()
{
messages.dequeue('messages');
}
var messages=$({});
var messageTypes={ERROR:'ERROR',WARNING:'WARNING',INFO:'INFO'};
元。每个([
{消息:'message1',类型:'ERROR'},
{message:'message2',键入:'WARNING'},
{message:'message3',键入:'INFO'}],
功能(一、数据)
{
messages.queue('messages',function())
{
消息(data.message,data.type)
});
}
);
$("", {
文本:“显示消息”,
单击:函数(){
ShowNextQueedMessage()
}
}).附于(“主体”);
函数showNextQueedMessage()
{
messages.dequeue(“messages”);
}
您能建议我如何开始显示下一个TqueedMessage()?我知道我可以通过按“x”按钮取消模式时调用它,但如何在用户不必按任何按钮的情况下启动队列?在向队列添加消息后立即调用ShowNextQueedMessage()时,它只显示一条消息。但我认为这可能与我使用ajax有关,它的结果作为一条消息使用,而在几行之后,我添加了第二条消息(不检查ajax调用是否完成)。这将只显示最后一条(非ajax)消息。我将看看等待ajax调用完成是否会有所帮助,但也欢迎提出任何建议。