相关疑难解决方法(0)

将键盘焦点设置为<div>

我有以下代码片段:

<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...
Run Code Online (Sandbox Code Playgroud)

我有一个<div>动态构建元素的页面(如上所述).这<div>会在主屏幕顶部显示数据.当页面生成div时,我想设置焦点.我不能在body标签上放一个onLoad函数,因为我不知道什么时候生成div.

一个<div>标签不能有焦点设置于它直接.所以我<a>在下面的函数中放了一个带有id 的空标签:

function setTableFocus(count){
        var flinkText = 'focusLink'+count;
       document.getElementById(flinkText).focus();
}
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,我知道在页面显示时(通过警报)正在调用该函数.但是,当我使用箭头键或输入按钮时整个页面移动(甚至不是呈现数据的div).

当我点击其中一个表格元素(使用鼠标).之后,keydown事件开始工作.我想要做的是将数据呈现给用户并自动进行键盘驱动.

有没有人有任何建议我怎么能做到这一点?

html javascript jquery setfocus

40
推荐指数
1
解决办法
5万
查看次数

即使没有在chrome上移动鼠标,也会触发onmroll上的mousemove事件

我试图回答自定义下拉菜单的问题,但是Chrome和FF中的行为不一致.

演示: http ://jsfiddle.net/fyeht/ [添加滚动事件以获得更清晰]

请参见下图,可以使用箭头键导航列表项.

要重现此问题:

  1. 在Chrome中打开控制台(F12)
  2. 单击列表中的项目(您会注意到在控制台中记录了一些事件)
  3. 使用向下箭头键导航到列表中的下一个项目
  4. 最后,当您到达视图中的最后一个项目并且按下向下箭头时,会注意到该问题.检查日志以查看"滚动","鼠标输入"和"鼠标移动"[查看新演示]

问题是在到达视图中的项目结束后,它会滚动.即使鼠标未受影响,它也会在Chrome中触发mouseenter和触发mousemove事件.在FF中,在滚动时它会触发mouseenter哪个有意义.

在此输入图像描述

问题(S):

  • mousemove鼠标未受影响时为什么会触发?
  • 这只是浏览器的不一致吗?无法找到滚动时触发的事件的文档?(从来不知道它确实如此)

提交了错误报告:https://code.google.com/p/chromium/issues/detail?id = 241476

javascript firefox webkit google-chrome javascript-events

27
推荐指数
2
解决办法
6099
查看次数