/ Gists / Custom events $.trigger()
On gists

Custom events $.trigger()

JavaScript jQuery
http://blogs.sitepointstatic.com/examples/tech/custom-events/jquery.html

trigger.html Raw #

<form id="msgbox" action="#" method="get">
<fieldset>
<label for="msg">your message</label>
<input id="msg" value="" />
<button>SEND</button>
</fieldset>
</form>

trigger.js Raw #

// 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