我有一系列DIV元素,当点击,触发DOMWindow打开事件的。那里没问题。.focus()不工作一DOMWindow()[JQuery的]
然后我不得不添加键盘辅助功能。 DOH !!
我加的tabindex属性的DIV,它允许用户使用Tab键从一个DIV到下了,我增加了一个按键处理,处理Enter键。那里没问题。
我遇到的问题是试图将焦点设置回用户在打开Enter键并打开DOMWindow时所处的div(以便它们可以继续切换到系列中的下一个DIV) 。
我尝试添加一个功能存在domWindow的“functionCallOnClose”设置,但似乎并没有做任何事情。
这里是一个代码段。这是在点击按键事件绑定到具有“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和处理点击按键事件(或至少知道如何)
:O)
编辑:做一些进一步的调试后,似乎有与jQuery正从DIV标签的tabIndex属性的问题。当我认为我的页面的源代码,我可以看到的属性:
<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属性,但它会在使用代码动态设置后返回?
希望这是有道理...
调用.focus()调用是否在脚本的其他地方使用div?我注意到在.focus()文档中,它可能不适用于旧版浏览器中的非表单元素,即使使用tabindex。此外,你有没有尝试在你的functionCallOnClose中放置一个alert,以确保它实际上正在执行? – Ender 2010-10-26 22:20:45
是的,焦点()在别处工作,是的,我知道该函数正在执行,因为我可以使用调试器进入它。奇怪的是,我似乎无法使用jQuery从div中获取tabindex属性。我可以在HTML源代码中看到它,所以我知道它在那里,但是当我尝试访问它时,jQuery返回“undefined”。我认为这是我的问题的根本原因。 – camainc 2010-10-27 18:14:26