code: function( handleObj ) {
        var old_handler;
        
        function new_handler(e) {
          // e.fragment is set to the value of location.hash (with any leading #
          // removed) at the time the event is triggered.
          var hash = e[ str_fragment ] = jq_param_fragment();
          
          // e.getState() works just like $.bbq.getState(), but uses the
          // e.fragment property stored on the event object.
          e.getState = function( key, coerce ) {
            return key === undefined || typeof key === 'boolean'
              ? jq_deparam( hash, key ) // 'key' really means 'coerce' here
              : jq_deparam( hash, coerce )[ key ];
          };
          
          old_handler.apply( this, arguments );
        };
        
        // This may seem a little complicated, but it normalizes the special event
        // .add method between jQuery 1.4/1.4.1 and 1.4.2+
        if ( $.isFunction( handleObj ) ) {
          // 1.4, 1.4.1
          old_handler = handleObj;
          return new_handler;
        } else {
          // 1.4.2+
          old_handler = handleObj.handler;
          handleObj.handler = new_handler;
        }
      }
docs: Augmenting the event object with the .fragment property and .getState method requires jQuery 1.4 or newer. Note: with 1.3.2, everything will work, but the event won't be augmented)