/
pubsub.js
41 lines (40 loc) · 998 Bytes
/
pubsub.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var pubsub = {
sendMessage: function() {
message = $("input").val();
$("body").trigger("messageReceived", { message: message});
return false;
},
displayMessage: function(data) {
$("body").trigger("messageDisplayed");
li = $("<li />").text(data.message).css("display", "none");
$("ul").append(li);
$("ul>li").last().fadeIn()
},
flashMessage: function() {
$(".flash").text("you've got a new message")
.fadeIn(500, function() {
var that = this;
setTimeout(function() {
$(that).fadeOut(500);
}, 2000);
});
},
bindEvents: function() {
$("form").on("submit",function() {
pubsub.sendMessage();
return false;
});
$("body").on("messageReceived", function(event,data) {
pubsub.displayMessage(data);
});
$("body").on("messageDisplayed", function(event, data) {
pubsub.flashMessage();
});
},
init: function() {
this.bindEvents();
}
};
$(function() {
pubsub.init();
});