replaced Function.prototype.bind with $.proxy for enhaned compatibility