Javascript 将键盘焦点设置为a<;部门>;
我有以下代码片段:Javascript 将键盘焦点设置为a<;部门>;,javascript,jquery,html,setfocus,Javascript,Jquery,Html,Setfocus,我有以下代码片段: <div id="listbox1div" style="z-index:95; background:white; overflow-y:auto; overflow-x:hidden; width:240; height:314px;"> <a id="focusLink2"></a> <table id="ptObj_listbox1... 我没有收到任何错误,我知道在显示页面时(通过警报)正在调用该函数。但是,当我使用箭头键
<div id="listbox1div" style="z-index:95; background:white; overflow-y:auto; overflow-x:hidden; width:240; height:314px;">
<a id="focusLink2"></a>
<table id="ptObj_listbox1...
我没有收到任何错误,我知道在显示页面时(通过警报)正在调用该函数。但是,当我使用箭头键或enter按钮时,整个页面都会移动(甚至不包括显示数据的div)
当我点击其中一个表格元素时(使用鼠标)。之后,keydown事件开始工作。我想做的是将数据呈现给用户,并自动由键盘驱动
有人对我如何实现这一点有什么建议吗?动态生成div的函数将在最后一次div之后,输出一个脚本,其中包含一个scrollTo(),用于关注所需的div。为每个div分配一个ID,这样您就可以从集合中选择它
Response.Write "
<script language='text/javascript'>
document.getElementById('div#').scrollIntoView();
</script>
"
Response.Write”
document.getElementById('div#').scrollIntoView();
"
您不能对焦div。您的意思是对焦输入吗
无论如何,您可以在HTML中包含一个简短的脚本标记来聚焦某些内容—只需将脚本放在div后面—甚至放在div内部。您是否控制asp函数?如果是的话,那将是最容易设置焦点的地方。否则,您可以侦听
domandeinserted
事件(注意:浏览器支持可能会有所不同),并根据适当的条件将焦点设置为div
(或其子项)。您可以使用
文本
document.getElementsByClassName('to-focus')[0].focus()
如果添加tabindex
属性,可以使div
成为焦点
见:
tabindex值可以允许一些有趣的行为
- 如果给定的值为“-1”,则该元素不能被标记,但焦点可以 可以通过编程方式(使用element.focus())指定给元素李>
- 如果给定的值为0,则可以通过键盘和 属于文档的选项卡流李>
- 大于0的值将创建优先级,其中1是最重要的
更新:在中添加了一个简单的演示,您的意思是希望在生成div时对其进行聚焦吗? 尝试重新搜索这些 及 还有按键 afaik div和其他元素可以有类似于wiki的焦点,比如 它会自动滚动到那里。我只是不知道怎么做
对于动态生成的div和表,您可以使用jquery的live()函数我解决了以下问题:
<div tabindex="0" >
<button onclick="element.parentNode.focus();"/>
</div>
您知道如何使用VBScript将焦点设置为div吗?您实际上需要将javascript输出到页面,浏览器将处理该页面以设置焦点。您不能直接从asp设置焦点。请参阅更新的答案。您需要将id=“myDiv13”添加到每个div,然后您可以根据最后的一些逻辑选择所需的一个。使用scrollIntoView()函数代替focus()。@Jeff-如果您提供一个(精简的)示例,包括一些asp代码,可能会更好?我有一个div和一个正在生成的表。我需要在沙发或桌子上集中注意力。您所指的脚本是vbscript还是javascript?当然是javascript。而div和table不能有焦点。(焦点表示光标正在闪烁,准备好输入。)也许焦点不是正确的词。。。。基本上,当屏幕显示时,我希望能够使用键盘向下移动表格(行)。难道不需要某种关注吗?也许它叫别的什么。嗯,键盘可以滚动页面。但是如果你真的想使用键盘跳转到每一行(就像gmail处理每一封电子邮件一样),你需要专门编程。现在页面只是在一种模式屏幕(不是真正的模式)中显示div和tables,但我需要点击表格,然后才能在表格中上下导航。。。我要求的是在加载sweet后模拟表中的单击。我有一个模态对话框,除非我有焦点,否则无法取消。它会自动聚焦到第一个字段,但我有时会禁用该字段(编辑而不是添加)。我不想自动聚焦到下一个字段,因为它有占位符文本。所以我想“我不能只关注一个div吗?”所以我在禁用字段的父div上放了一个tabIndex 0,它就工作了。谢谢可能的重复可能的重复
<div tabindex="0" class="to-focus">TEXT</div>
<script> document.getElementsByClassName('to-focus')[0].focus()</script>
<div tabindex="0" >
<button onclick="element.parentNode.focus();"/>
</div>