关闭DOMWindow()后,.focus()无法正常工作[JQuery]

时间:2010-10-26 21:30:34

标签: jquery html tabindex

我有一系列DIV元素,点击它们时会触发DOMWindow打开事件。没问题。

然后我不得不添加键盘辅助功能。 DOH !!

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

我遇到的问题是尝试将焦点设置回用户在按下Enter键并打开DOMWindow时所使用的div(这样他们就可以继续跳转到系列中的下一个DIV)。

我尝试在DOMWindow的“functionCallOnClose”设置中添加一个函数,但这似乎没有做任何事情。

这是一段代码段。这会将click和keypress事件绑定到类名为“timeEntry”的所有DIV:

$(".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,并处理点击和按键事件(或至少知道如何)

:○)

编辑:在进行一些进一步的调试之后,似乎jQuery从DIV标签获取tabIndex属性存在问题。当我查看页面的来源时,我可以看到属性:

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

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

此代码返回“undefined”

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 个答案:

答案 0 :(得分:1)

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

它可能是jquery版本1.4.3中的错误(根据链接在1.4.2中工作)。