我想在JavaScript中找出目前关注哪个元素.我一直在浏览DOM,但还没找到我需要的东西.有没有办法做到这一点,以及如何?
我之所以在寻找这个:
我正在尝试制作像箭头一样的键,并enter在输入元素表中导航.选项卡现在可以使用,但是输入,并且默认情况下不显示箭头.我已经设置了密钥处理部分,但现在我需要弄清楚如何在事件处理函数中移动焦点.
有什么我可以这样做(通过插件perhap)
if ( ! $('form#contact input]').hasFocus()) {
$('form#contact input:first]').focus();
}
Run Code Online (Sandbox Code Playgroud)
基本上,将焦点设置为第一个输入,但仅当用户尚未点击任何内容时?
我知道这也会奏效,但有什么更优雅的吗?
$(function() {
var focused = false;
$('form#contact input]').focus(function() {
focused = true;
});
setTimeout(function() {
if ( ! focused) {
$('form#contact input:first]').focus();
}
}, 500);
});
Run Code Online (Sandbox Code Playgroud) 我想确定哪个元素在一系列输入中具有最后焦点,这些输入是由用户动态添加的.此代码只能获取页面加载时可用的输入:
$('input.item').focus(function(){
$(this).siblings('ul').slideDown();
});
Run Code Online (Sandbox Code Playgroud)
这段代码可以看到所有曾经有过焦点的元素:
$('input.item').live('focus', function(){
$(this).siblings('ul').slideDown();
});
Run Code Online (Sandbox Code Playgroud)
HTML结构是这样的:
<ul>
<li><input class="item" name="goals[]">
<ul>
<li>long list here</li>
<li>long list here</li>
<li>long list here</li>
</ul></li>
</ul>
<a href="#" id="add">Add another</a>
Run Code Online (Sandbox Code Playgroud)
在页面加载时,单个输入加载.然后每次添加另一个,创建并附加顶部无序列表的内容的新副本,并且新输入获得焦点.当每个人都获得焦点时,我想在其下方显示列表.但我似乎无法"关注现在或将来存在的最近关注的元素."
澄清一下:我不是在寻找DOM树中最后一个元素.我正在寻找当前具有焦点的元素,即使原始页面加载时不存在所述元素.
所以在上面的图像中,如果我要关注第二个元素,那么单词列表应该出现在第二个元素下面.我的焦点目前是最后一个元素,所以在那里显示单词.
我有某种基本假设错了吗?
我正在进行一些关于网页设计的心理学实验,我想禁用鼠标点击.(请忽略可用性问题.我了解它们.我故意这样做是为了我的心理实验.)
到目前为止,我成功禁用了Firefox,Chrome和Safari中的两次点击.但是,在IE中,当我左键单击时,焦点仍会改变到我单击的位置.我想停止这种行为(即在我点击之前焦点仍然是这个地方).系统是否产生警报并不重要,因为无论如何我都会使用警报.
如果你们中的一些人能帮助我,我感激不尽.请注意,我不能使用JQuery.我的实验工具无法很好地处理JQuery.
<html>
<head>
</head>
<body>
<div>
<select>
<option> aa </option>
</select>
</div>
<div>
<select>
<option> aa </option>
</select>
</div>
<script type="text/javascript">
function mousehandler(){
alert("For the purpose of psych experiment, you can't use mouse.");
return false;
}
document.oncontextmenu = mousehandler;
document.onmousedown = mousehandler;
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我有单个Html页面有许多锚元素.这个单一的Html页面包含许多div部分.每次只显示一个零件,并且将专注于该零件的特定锚点.这个html还包含一个div来打开弹出窗口.当这个弹出窗口将打开特定于此的锚点将集中.现在我希望早些时候重点关注弹出锚点.我的代码如下: -
<body onload="Main.onLoad();" onunload="Main.onUnload();">
<a href='javascript:void(0);' id='anchor' onkeydown='Main.MainKeyHandler();'></a>
<a href='javascript:void(0);' id='anchorAboutUs' onkeydown='Main.MainKeyHandler1();'></a>
<a href='javascript:void(0);' id='anchorSecondScreen' onkeydown='Main.MainKeyHandler2();'></a>
<a href='javascript:void(0);' id='popupanchor' onkeydown='PopupKeyHandler();'></a>
<div id="ParentDiv">
<div id="SplashScreenDiv">
<div id="SplashScreen"></div>
</div>
<div id="Logo"></div>
<div id="Header"></div>
<div id='messagePopup' style='position:relative;width:500px;z-index:1000;background-color:#ffffff;'><div ></div ><div id='popupReturn'>Return</div><div>
<div id="PopUp">
<div id="YesBtn"></div>
<div id="NoBtn"></div>
</div>
<div id="FirstScreen">
<div id="testinfo" style="color:#ff0000; width:600px; height:50px; overflow:hidden; font-size:xx-large; "></div>
<div id="btn_horoscope"></div>
<div id="btn_aboutus"></div>
</div>
<div id="AboutUsScreen" >
<div id="AboutUsImgDiv">
<div id="AboutUsImg"></div>
</div>
<div id="aboutUsInfoDiv">
<div id="aboutUsInfo"></div>
</div>
</div>
<div id="SecondScreen" >
<div id="HoroscopeImg" class="HoroImage"></div> …Run Code Online (Sandbox Code Playgroud) 有没有办法确定文档中哪个元素当前具有焦点?理想情况下,无需走过任何元素.