Skip to content

Instantly share code, notes, and snippets.

@ccorcos
Created April 21, 2014 03:06
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ccorcos/11131203 to your computer and use it in GitHub Desktop.
Save ccorcos/11131203 to your computer and use it in GitHub Desktop.
ok cancel events for meteor
////////// Helpers for in-place editing //////////
// Returns an event map that handles the "escape" and "return" keys and
// "blur" events on a text input (given by selector) and interprets them
// as "ok" or "cancel".
okCancelEvents = function(selector, callbacks) {
var ok = callbacks.ok || function() {};
var cancel = callbacks.cancel || function() {};
var events = {};
events['keyup ' + selector + ', keydown ' + selector] =
function(evt) {
if (evt.type === "keydown" && evt.which === 27) {
// escape = cancel
cancel.call(this, evt);
} else if (evt.type === "keyup" && evt.which === 13 ||
evt.type === "focusout") {
// blur/return/enter = ok/submit if non-empty
var value = String(evt.target.value || "");
if (value)
ok.call(this, value, evt);
else
cancel.call(this, evt);
}
};
return events;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment