Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 17th, 2012  |  syntax: None  |  size: 1.72 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /*
  2.  * Copyright (c) 2011 Lyconic, LLC.
  3.  *
  4.  * Permission is hereby granted, free of charge, to any person obtaining a copy
  5.  * of this software and associated documentation files (the "Software"), to deal
  6.  * in the Software without restriction, including without limitation the rights
  7.  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  8.  * copies of the Software, and to permit persons to whom the Software is
  9.  * furnished to do so, subject to the following conditions:
  10.  *
  11.  * The above copyright notice and this permission notice shall be included in
  12.  * all copies or substantial portions of the Software.
  13.  *
  14.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17.  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18.  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19.  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  20.  * THE SOFTWARE.
  21.  */
  22.  
  23. (function ($) {
  24.  
  25.   $.fn.typeIntent = function ( options ) {
  26.     var keypressTimeout;
  27.     options || (options = {});
  28.     options.timeout || (options.timeout = 1000);
  29.  
  30.     $(this).bind('keypress', function ( e ) {
  31.       resetTimeout( keypressTimeout );
  32.       keypressTimeout = setTimeout( $.proxy(fireChange, e.target), options.timeout );
  33.     });
  34.  
  35.     $(this).bind('change', function ( e ) {
  36.       resetTimeout( keypressTimeout );
  37.     });
  38.   };
  39.  
  40.   function fireChange () {
  41.     $(this).trigger('change');
  42.   }
  43.  
  44.   function resetTimeout ( timeout ) {
  45.     if ( timeout ) {
  46.       clearTimeout( timeout );
  47.       timeout = null;
  48.     }
  49.   }
  50.  
  51. })(jQuery);