【问题标题】:I have a keyboard tabbing event issue我有一个键盘跳动事件问题
【发布时间】:2010-11-01 19:03:52
【问题描述】:

我试图能够通过这些工具提示作为我页面上的标签顺序的一部分进行标签,但标签在第一个工具提示处停止。我的 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) {

    }






}

}

【问题讨论】:

  • 这个 JS 附带的 HTML 会很有帮助。此外,还不清楚landingTooltip 对象是如何被使用的。

标签: javascript dom-events keyboard-shortcuts


【解决方案1】:
  • 安装firebug
  • 设置breakpoint
  • 看看到底是什么导致跳位顺序中断。
  • 在此处报告新的特定问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多