jQuery/遅延実行

jQuery
	
(function($) {
  // $.delay
  $.delay = {
    // $.delay.queue
    queue: [],
    // $.delay.timer
    timer: null,
    // $.delay.pause
    pause: function() {
      if (!$.delay.timer)
        return;
      clearInterval($.delay.timer);
      $.delay.timer = null;
    }
  };

  // $.resume
  $.resume = function(interval) {
    $.delay.pause();
    $.delay.timer = setInterval(function() {
      var fn = $.delay.queue.shift();
      if(fn){
      	fn();
      } else {
      	$.delay.pause();
      }
    }, interval || 10);
  };

  // delay
  $.fn.delay = function(fn) {
    var self = this;
    $.delay.queue.push(function() {
      self.each(fn);
    });
    return self;
  };

})(jQuery);

function run(inputText) {
  $.each(inputText.split(''), function(i, v) {
    $('span />')
      .text(v)
      .delay(function() {
        $('#writer').append(this);
      });
  });
  $.resume(200);
} 

$(function(){
	$("#inputSubmit").mousedown(function(){
		$("#writer").text("");
	});
});