2010-11-01 16 views
0

J'essaie de pouvoir parcourir cette info-bulle dans ma commande de tabulation sur ma page, mais la tabulation s'arrête à la première info-bulle. Le problème avec l'instruction try catch est-il dans mon code Javascript?J'ai un problème de tabulation sur un clavier

landingTooltip = { 
locked :false, 
initialize: function(){ 
    if (dojo.byId('pickup-cycle')){ 
     this.buttons = dojo.query('.button-link', dojo.byId('pickup- cycle')); 

    } 
    else{ 
     return; 
    } 
    var _this = this; 
    dojo.forEach(
     _this.buttons, 
     function(obj){ 
      Hoverable.disconnect(obj) 
      domExtender.connect(obj,"onmouseenter",function(e){ 
       _this.show(domExtender.closest(obj, '.step'), obj); 
      }); 
//    dojo.connect(obj,"onmouseleave",function(e){ 
//     _this.hide(domExtender.closest(obj, '.step'), obj, null); 
//    }); 
      domExtender.connect(dojo.query('a', obj)[0],"onfocus",function(e){ 
       _this.show(domExtender.closest(obj, '.step'), obj); 
      }); 

     } 
    ); 
}, 
show: function(el, t){ 

     if (this.locked == true){ 
      return; 
     } 
     this.locked = true; 
     var t = t; 
     var _this = this; 


     dojo.addClass(dojo.query('span', t)[0], 'hover'); 
     this.tt = dojo.query('.tool-tip', el)[0]; 



     var placed = dojo.place(
      _this.tt, 
      dojo.body(), 
      'first' 

     ); 
     dojo.style(_this.tt, 'display', 'block'); 
     _this.tt.focus(); 
     var setFocus = dojo.query('h5', placed)[0]; 
     setFocus.focus(); 
     this.inst = dojo.connect(_this.tt,"onblur",function(e){ 
      if (domExtender.closest(e.target, 'div.tool-tip') == null) { 
       _this.hide(domExtender.closest(t, '.step'), t, true); 
      } 
     }); 
     this.inst1 = dojo.connect(dojo.body(), 'onclick',function(e){ 
      //alert(domExtender.closest(e.target, 'div.tool-tip')); 
      if (domExtender.closest(e.target, 'div.tool-tip') == null){ 

       _this.hide(domExtender.closest(t, '.step'), t, true); 
      } 

     }); 


}, 
hide: function(el, t, blur){ 
//  if (this.locked == true){ 
//   return; 
//  } 

    this.locked = true; 
    var _this = this; 
    if (this.inst){ 
      dojo.disconnect(_this.inst); 
    } 
    if (this.inst1){ 
      dojo.disconnect(_this.inst1); 
    } 



     dojo.removeClass(dojo.query('span', t)[0], 'hover'); 
     var placed = dojo.place(

      _this.tt, 
      el, 
      'first' 

     ); 
     dojo.style(placed, 'display', 'none'); 
     _this.locked = false; 


     try { 
      var setFocus = domExtender.next(el); 

       setFocus.focus(); 

    } catch (e) { 

    } 






} 

} 
+0

Le HTML qui accompagne ce JS serait utile. En outre, il n'est pas évident de savoir comment l'objet landingTooltip est utilisé. – jimbojw

Répondre

1
  • Installer firebug
  • Définir un breakpoint
  • Voir ce qui provoque l'ordre de tabulation pour briser exactement.
  • Signaler une nouvelle question spécifique ici.