我有键盘标签事件问题

时间:2010-11-01 19:03:53

标签: javascript-events keyboard-shortcuts

我正在尝试能够在我的页面上将这些工具提示作为我的Tab键顺序的一部分进行制表,但是标签会在第一个工具提示处停止。我的Javascript代码中的try catch语句有问题吗?

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) {

    }






}

}

1 个答案:

答案 0 :(得分:1)

  • 安装firebug
  • 设置breakpoint
  • 了解导致Tab键顺序的确切原因。
  • 在此处报告一个新的具体问题。