Skip to content

Instantly share code, notes, and snippets.

@julioolvr
Created February 17, 2013 06:03
Show Gist options
  • Save julioolvr/4970390 to your computer and use it in GitHub Desktop.
Save julioolvr/4970390 to your computer and use it in GitHub Desktop.
jQuery cached delegation blah
// TESSSSSSSSST
(function($) {
$.fn.cachedDelegation = function(event, selector, callback) {
var $context = $(this);
$context.on(event, selector, function(e) {
console.log('evaluating callback for ', this);
var $target = $(this);
var savedCallback = $(this).data('lazydelegation-callback');
if (!savedCallback) {
savedCallback = callback.apply(this, arguments);
$(this).data('lazydelegation-callback', savedCallback);
}
if (typeof savedCallback === 'function')
return savedCallback.apply(this, arguments);
else
return savedCallback
});
};
})(jQuery);
$(function() {
$("form").cachedDelegation('click', 'button', function(event) {
var button = $(this);
var numberElem = button.find('.number');
var number = Number(numberElem.text());
return function(event) {
event.preventDefault();
number = number - 1;
numberElem.text(number);
if (number === 0) {
button.prop("disabled", true);
}
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment