keys: ['{'],
        shift: true,
        handler: function(){ 
          var url = $timeline.find('.prev a');
          if (url.length) {
            self.location = url.attr('href');

解决方案 »

  1.   

    符合某个条件后导航到某个url
      

  2.   

    完整代码在这里,怕大家没时间看
    <script type="text/javascript" src="http://img3.douban.com/js/lib/packed_hotkeys644869918.js"></script><script type="text/javascript">
    $(function(){
        var cur_item = -1, 
        cur_tab = 0,
        $timeline = $('#miniblog'), 
        $timeline_menu = $('#db-timeline-hd li'), 
        $doc = $(document),
        $win = $(window),
        delay,
        $items = $timeline.find('.mbtl'),     handle_j = function(){
          if (delay) {
            window.clearTimeout(delay);
          }
          var h;
          if (cur_item + 1 >= $items.length) {
            return;
          }
          h = $items.eq(cur_item + 1).pos().y;      // fix meet hidden item, cant get 'y'
          if (!h) {
              cur_item ++;
              handle_j();
              return;
          } 
          //end      if ( h > $('body').innerHeight() - $win.height()) {
            cur_item ++;
            return;
          }
          window.scrollTo(0, h - 20);
        },    handle_k = function(){
          if (delay) {
            window.clearTimeout(delay);
          }
          h = $items.eq((cur_item - 1 < 0)? 0 : cur_item - 1).pos().y;      // fix meet hidden item, cant get 'y'
          if (!h) {
              cur_item --;
              handle_k();
              return;
          } 
          //end      window.scrollTo(0, h - 20);
        };    $win.bind('scroll', function(e){
            if (delay) {
              window.clearTimeout(delay);
            }        delay = window.setTimeout(function(){
              var t = $doc.scrollTop(), i, len;
              if (t < $items.eq(0).pos().y - 20) {
                cur_item = -1;
                return;
              }
              for(i = 0, len = $items.length; i < len; i++ ){
                if ($items.eq(i).pos().y > t) {
                  cur_item = i;
                  break;
                }
              }
            }, 100);
        });    $timeline_menu.each(function(i, e){
          if ($(e).hasClass('on')) {
            cur_tab = i;
          }
        });    $.hotKeys([
          {
            keys: [191],
            handler: function(){
              var srh = $('input[name=search_text]');
              if (srh.length) {
                srh.focus();
                setTimeout(function(){ srh.val(''); },10);
              }
            } 
          },
          {
            keys: ['j'],
            handler: handle_j 
          },
          {
            keys: [71, 71],
            handler: function(){ window.scrollTo(0, 0); } 
          },
          {
            keys: [82],
            handler: function(e){
              var reply = $items.eq(cur_item).next().find('.a_rec_reply,.a_saying_reply,.a_morerec');
              if (reply.length) {
                reply.eq(0).click();
              }
            } 
          },
          {
            keys: [78],
                  handler: function(e){ 
                      window.scrollTo(0, 0); 
                      setTimeout(function() {
                           $('#db-talk textarea').focus();
                      },10); 
                  } 
          },
          {
            keys: [71],
            shift: true,
            handler: function(){ window.scrollTo(0, $('body').innerHeight()); } 
          },
          {
            keys: ['}'],
            handler: function(){ 
              var tabs = $('#db-timeline-hd li a');
              if (cur_tab + 1 >= tabs.length) {
                cur_tab = -1;
              }
              cur_tab ++;
              self.location = tabs.eq(cur_tab).attr('href');
            } 
          },
          {
            keys: ['{'],
            handler: function(){ 
              var tabs = $('#db-timeline-hd li a');
              if (cur_tab - 1 < 0) {
                cur_tab = tabs.length;
              }
              cur_tab --;
              self.location = tabs.eq(cur_tab).attr('href');
            } 
          },
          {
            keys: ['}'],
            shift: true,
            handler: function(){ 
              var url = $timeline.find('.next a');
              if (url.length) {
                self.location = url.attr('href');
              }
            } 
          },
          {
            keys: ['{'],
            shift: true,
            handler: function(){ 
              var url = $timeline.find('.prev a');
              if (url.length) {
                self.location = url.attr('href');
              }
            } 
          },
          {
            keys: ['k'],
            handler: handle_k 
          }
        ]);
    });
    </script>
      

  3.   

    这是google的hotkeys插件,前三行是这个插件的参数