All pastes #2128880 Raw Edit

Mine

public text v1 · immutable
#2128880 ·published 2012-03-16 18:20 UTC
rendered paste body
(function($) {

    $.fn.previewTextareas = function() {
        var $el = this;

        var run = function(){
            var textareas = $('textarea', $el);
            textareas.each(initializeTextarea);
        };

        var initializeTextarea = function(i, textarea) {
            textarea = $(textarea);
            attachPreviewToTextarea(textarea);
            updatePreview(textarea);
            bindEvents(textarea);
        };

        var attachPreviewToTextarea = function(textarea) {
            var preview = getPreviewTemplate();
            preview.insertAfter(textarea);
            textarea.data('preview', preview);
        };

        var updatePreview = function(textarea) {
            var value = textarea.val();
            var preview = textarea.data('preview');
            preview.html(value);
        };

        var bindEvents = function(textarea) {
            textarea
                .change(onEventUpdatePreview)
                .keydown(onEventUpdatePreview)
                .keypress(onEventUpdatePreview)
                .keyup(onEventUpdatePreview)
                .bind('cut paste textInput input', onEventUpdatePreview);
        };

        var onEventUpdatePreview = function(event){
            updatePreview($(event.target));
        };

        var getPreviewTemplate = function() {
            return $('<p></p>');
        };

        run();
        return this;
    }
})(jQuery);