Skip to content

Instantly share code, notes, and snippets.

@Kcko
Created December 18, 2017 15:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kcko/05d76bc3359fa1b1e069894c18f00cd0 to your computer and use it in GitHub Desktop.
Save Kcko/05d76bc3359fa1b1e069894c18f00cd0 to your computer and use it in GitHub Desktop.
<form id="msgbox" action="#" method="get">
<fieldset>
<label for="msg">your message</label>
<input id="msg" value="" />
<button>SEND</button>
</fieldset>
</form>
// elements
var log = $("#log")[0];
// form submit handler
$("#msgbox").on("submit", SendMessage);
// newMessage event subscribers
$(document).on("newMessage", newMessageHandler);
$("body").on("newMessage", newMessageHandler);
$("#msgbox").on("newMessage", newMessageHandler);
// newMessage event handler
function newMessageHandler(e) {
LogEvent(
"Event subscriber on "+e.currentTarget.nodeName+", "
+e.time.toLocaleString()+": "+e.message
);
}
// new message: raise newMessage event
function SendMessage(e) {
e.preventDefault();
var msg = $("#msg").val().trim();
if (msg) {
$.event.trigger({
type: "newMessage",
message: msg,
time: new Date()
});
}
}
// log event in console
function LogEvent(msg) {
log.textContent += msg + "\n";
var ot = log.scrollHeight - log.clientHeight;
if (ot > 0) log.scrollTop = ot;
}
</s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment