我有一系列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属性,但在使用代码动态设置后会返回吗?