Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将键盘焦点设置为a<;部门>;_Javascript_Jquery_Html_Setfocus - Fatal编程技术网

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>