【发布时间】:2015-08-14 15:07:08
【问题描述】:
我的网页中有以下代码行 - example/demo。
/* Messages Modal */
$(document).ready(function(){
var informer = $("#messageInformer a");
var refreshBadge = function(messageCount) {
var badge = informer.find(".badge");
if (messageCount > 0) {
if (!badge.length) {
informer.text("Messages ");
informer.append("<span class=\"badge\">" + messageCount + "</span>");
}
else {
badge.text(messageCount);
}
}
else {
// informer.text("No messages");
informer.text("Messages ");
informer.append("<span class=\"badge\">" + messageCount + "</span>");
}
};
var buildMessage = function(message) {
var htmlMessage = "<div class=\"alert fade in\">";
htmlMessage += "<a href=\"#\" class=\"close\" data-dismiss=\"alert\" aria-lable=\"close\" data-id=\"" + message.id + "\">×</a>";
htmlMessage += "<strong>" + message.title + "</strong>";
htmlMessage += "<p>" + message.text + "</p>";
return htmlMessage;
}
// Messages To Display
var messages = [
{
id: "1",
title: "Title 01:",
text: "<ul> \
<li>List Item</li> \
<li>List Item</li> \
</ul> \
<br/> \
<p>Paragraph</p> \
<p>E-Mail: <a href=\"mailto:email@address.com\">email@address.com</a></p> \
"
},
{
id: "2",
title: "Title 02:",
text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat velit et vehicula vulputate."
},
{
id: "3",
title: "Title 03:",
text: "Quisque viverra nisl ut arcu eleifend aliquam. Ut faucibus efficitur nibh, sit amet tincidunt est volutpat non."
}
];
refreshBadge(messages.length);
informer.on("click", function(e) {
e.preventDefault();
var modalBody = $(".modal-body");
modalBody.empty();
for (var i = 0; i < messages.length; i++) {
modalBody.append(buildMessage(messages[i]));
}
if (messages.length == 0) {
$('.modal-body').text('There are no more messages to display.');
}
});
$("body").delegate(".alert .close", "click", function() {
var messageId = $(this).data("id");
// AJAX
messages = messages.filter(function(el) {
return el.id != messageId;
});
if (messages.length == 0) {
// $("#messagesModal").modal("hide");
$('.modal-body').text('There are no more messages to display.');
}
refreshBadge(messages.length);
});
});
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<p data-toggle="modal" data-target="#messagesModal" id="messageInformer"><a href="#">Messages <span class="badge"></span></a>
</p>
<!-- Modal -->
<div class="modal fade" id="messagesModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Messages</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<div class="col-md-8 pull-left">
</div>
<div class="col-md-4">
<button type="button" class="btn btn-default pull-right" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
页面刷新时如何存储modal、badge和alerts的数据?
例如,如果您删除三条消息中的一条,然后刷新页面,则应该只有两条消息可用。
【问题讨论】:
-
我会使用 localStorage 或 cookie
-
我不太熟悉使用
localStorage以及我将如何进行,或者我应该修改哪些行以使其在我的项目中工作。如果您能提供一个工作示例,那就太好了。
标签: javascript jquery html css twitter-bootstrap