代码之家  ›  专栏  ›  技术社区  ›  camainc

.focus()在关闭DOMWindow()后不起作用[JQuery]

  •  2
  • camainc  · 技术社区  · 15 年前

    我有一系列DIV元素,当单击时,触发一个DOMWindow open事件。没问题。

    然后我不得不增加键盘的可访问性。啊!!

    我向DIV添加了tabindex属性,允许用户从一个DIV切换到下一个DIV,并添加了一个keypress处理程序来处理Enter键。没问题。

    我遇到的问题是试图将焦点设置回用户按下Enter键并打开DOMWindow时所在的div(以便他们可以继续切换到系列中的下一个div)。

    我试着在DOMWindow的“functionCallOnClose”设置中添加一个函数,但这似乎没有任何作用。

    $(".timeEntry").live("click keypress", function () {
    
        // bunch of code here to set up the DOMWindow...
    
        $.openDOMWindow({
    
            // bunch of settings here...
    
            functionCallOnClose: function () {
                // this doesn't work
                // 'DivId' is the object (DIV) that was clicked on
                $(DivId).focus();
            }
        });
    
    });
    

    有没有人知道为什么在点击或按键事件被触发和处理后,我似乎无法将焦点恢复到原始DIV?

    我意识到这是一个相当模糊的问题,所以我把它抛在一边,希望其他人读到这篇文章是在使用JQuery、DOMWindow和处理click和keypress事件(或者至少知道如何操作)

    编辑:

    <div id="someDiv" class="someClass" tabindex="1"> ... </div>
    

    但是,当我尝试使用jQuery获取属性时,它似乎不在那里。

    此代码返回“未定义”

    var tabindex = $("#someDiv").attr("tabindex");
    

    但是,如果使用jQuery设置属性,则可以返回并检索它:

    // set the tabindex
    $("#someDiv").attr("tabindex", "1");
    
    // now this returns "1"
    var tabindex = $("#someDiv").attr("tabindex");
    

    有人知道为什么jQuery在HTML中设置时不返回tabindex属性,但在使用代码动态设置后会返回吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Pehmolelu    15 年前

    这个问题听起来很有趣,所以我做了一些搜索,发现: http://api.jquery.com/attr/#comment-92512642

    这可能是jquery版本1.4.3中的一个bug(根据link在1.4.2中工作)。