diff --git a/config/assets.yml b/config/assets.yml index 73e761b2d..0fdc85f91 100644 --- a/config/assets.yml +++ b/config/assets.yml @@ -80,6 +80,7 @@ javascripts: - public/javascripts/friend-finder.js home: - public/javascripts/publisher.js + - public/javascripts/jquery.textchange.min.js - public/javascripts/aspect-edit-pane.js - public/javascripts/fileuploader-custom.js people: diff --git a/public/javascripts/jquery.textchange.min.js b/public/javascripts/jquery.textchange.min.js new file mode 100644 index 000000000..93f179a23 --- /dev/null +++ b/public/javascripts/jquery.textchange.min.js @@ -0,0 +1,10 @@ +/*! + * jQuery TextChange Plugin + * http://www.zurb.com/playground/jquery-text-change-custom-event + * + * Copyright 2010, ZURB + * Released under the MIT License + */ + (function(a){a.event.special.textchange={setup:function(){a(this).data("lastValue",this.contentEditable==="true"?a(this).html():a(this).val());a(this).bind("keyup.textchange",a.event.special.textchange.handler);a(this).bind("cut.textchange paste.textchange input.textchange",a.event.special.textchange.delayedHandler)},teardown:function(){a(this).unbind(".textchange")},handler:function(){a.event.special.textchange.triggerIfChanged(a(this))},delayedHandler:function(){var c=a(this);setTimeout(function(){a.event.special.textchange.triggerIfChanged(c)}, + 25)},triggerIfChanged:function(a){var b=a[0].contentEditable==="true"?a.html():a.val();b!==a.data("lastValue")&&(a.trigger("textchange",[a.data("lastValue")]),a.data("lastValue",b))}};a.event.special.hastext={setup:function(){a(this).bind("textchange",a.event.special.hastext.handler)},teardown:function(){a(this).unbind("textchange",a.event.special.hastext.handler)},handler:function(c,b){b===""&&b!==a(this).val()&&a(this).trigger("hastext")}};a.event.special.notext={setup:function(){a(this).bind("textchange", + a.event.special.notext.handler)},teardown:function(){a(this).unbind("textchange",a.event.special.notext.handler)},handler:function(c,b){a(this).val()===""&&a(this).val()!==b&&a(this).trigger("notext")}}})(jQuery); \ No newline at end of file diff --git a/public/javascripts/publisher.js b/public/javascripts/publisher.js index a5da460e2..c4b15b530 100644 --- a/public/javascripts/publisher.js +++ b/public/javascripts/publisher.js @@ -151,8 +151,8 @@ var Publisher = { }); }, - keyUp : function(){ - Publisher.determineSubmitAvailability() + textChange : function(){ + Publisher.determineSubmitAvailability(); Publisher.input().mentionsInput("val", function(value) { Publisher.hiddenInput().val(value); }); @@ -215,7 +215,7 @@ var Publisher = { } Publisher.input().autoResize({'extraSpace' : 10}); - Publisher.input().keyup(Publisher.keyUp) + Publisher.input().bind('textchange', Publisher.textChange); } };