1
我有一个侧面导航点(点击这些点上的每个点滚动来定位页面)。关于JavaScript元素的Tabindex
为了便于使用,我希望用户能够通过点标签。我已经设置了一个<span>
元素来包裹每个点的锚和tabindex工作正常,但是..
我希望点击事件被触发,当他们在导航元素上选项卡。即:如果他们选项卡点2,它应该模仿一个点击事件,以便将它们带到该锚点。
可能吗?
我有一个侧面导航点(点击这些点上的每个点滚动来定位页面)。关于JavaScript元素的Tabindex
为了便于使用,我希望用户能够通过点标签。我已经设置了一个<span>
元素来包裹每个点的锚和tabindex工作正常,但是..
我希望点击事件被触发,当他们在导航元素上选项卡。即:如果他们选项卡点2,它应该模仿一个点击事件,以便将它们带到该锚点。
可能吗?
如果我理解正确,我认为您应该能够通过听到点上的“焦点”事件并在您收到点时模拟点上的点击来解决您的问题。有几种方法可以做到这一点,具体取决于你使用的是什么框架(如果有的话)。例如,如果你正在使用jQuery,并且点由具有“点”类鉴定:
$('.dot').focus(function(e) {
e.target.click();
}
这里有一个小的测试页,我放在一起 - 这似乎在这两个IE10工作, Chrome:
<html>
<head>
<script type="text/javascript">
function handleOnLoad() {
var elems = document.getElementsByTagName("span");
var i;
for (i = 0; i < elems.length; ++i) {
elems[i].onfocus = function(event) {
if (event.target) {
event.target.firstChild.firstChild.click();
}
else if (event.srcElement) {
event.srcElement.firstChild.firstChild.click();
}
}
}
}
</script>
</head>
<body onload="handleOnLoad()">
<span class="focus" tabindex="1"><ul class="inactive" tag="scroller"><a href="#scroll1">Foo</a></ul></span>
<span class="focus" tabindex="2"><ul class="inactive" tag="scroller"><a href="#scroll2">Bar</a></ul></span>
<span class="focus" tabindex="3"><ul class="inactive" tag="scroller"><a href="#scroll3">Baz</a></ul></span>
<span class="focus" tabindex="4"><ul class="inactive" tag="scroller"><a href="#scroll4">Ban</a></ul></span>
</body>
</html>
谢谢Ben本人稍后会简短介绍一下。 –
嘿@Ben S.它没有完全工作:/我有一个'span'环绕锚点,以便它可以被选中。我的HTML是这样的
O
' - 那么我怎样才能在'ul' '当焦点在围绕它的'span'时? –这听起来像是它应该工作,如果你改变'e.target.click();'为'$('a',e.target).click();'。如果你知道你的标记中没有任何空格,如果你不想再做另一个查询,'e.target.firstChild.firstChild.click();'也应该可以工作。 –