我知道Suckerfish做得很好,但我不喜歡在Suckerfish的JavaScript,並認爲必須有一個更簡單的方法來使用jQuery來做到這一點。我已完成以下頁面:添加鍵盤支持網站下拉導航
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Test nav page</title>
<style type="text/css">
html {margin:0;padding:0;text-align:center;font-size:62.5%}
body {margin:0 auto;padding:0;width:600px;text-align:left;}
ul#nav {display:inline-block;width:260px;border:0;float:right;list-style:none;position:relative;}
ul#nav li {display:inline-block;float:left;width:130px;font-family:arial;color:#444;font-size:1.2em;font-weight:bold;text-align:center;position:relative;}
ul#nav li.t1, ul#nav li.t1 ul li a {background-color:#aad;}
ul#nav li.t2, ul#nav li.t2 ul li a {background-color:#daa;}
ul#nav li ul {position:absolute;left:-9999px;display:block;width:130px}
ul#nav li:hover ul,ul#nav li.hover ul, ul#nav li:focus ul {left:-40px;}
ul#nav li a {display:block;width:120px;padding:7px 5px;}
ul#nav li ul li a {border-top:solid 1px #ddd;font-size:0.9em;padding:7px 0;width:130px;display:inline-block}
</style>
</head>
<body>
<ul id="nav">
<li class="t1"><a href="#top1" tabindex="1">Top one</a>
<ul>
<li><a href="#first" tabindex="2">First</a></li>
<li><a href="#second" tabindex="3">Second</a></li>
</ul></li>
<li class="t2"><a href="#top2" tabindex="4">Top two</a>
<ul>
<li><a href="#third" tabindex="5">Third</a></li>
<li><a href="#fourth" tabindex="6">Fourth</a></li>
</ul></li>
</ul>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" >
$(document).ready(function(){
$('ul#nav li').hover(
function(){
$(this).toggleClass('hover');
});
// Updated with the following jQuery Function...
$('ul#nav li a').focus(
function(){
$(this).parent().addClass('hover');
});
// Just need a way of closing the dropdown when the key focus moves out of the li, not the anchor...
});
</script>
</body>
</html>
而且它一切都很好,除了它是用鍵盤無法訪問的。任何人都可以指出我錯過了什麼!?這只是讓我感到困惑,在過去的2個小時裏一直呆在這裏,而且速度不快。
乾杯,
牛逼
更新:我真的很近!如果焦點位於錨標記上,我添加了另一個jQuery函數,該函數將「懸停」類應用於父LI。我已經在上面的代碼中添加了它。這將允許我選擇鏈接並顯示下拉鍊接,但是一旦我標籤過去(我也更新了tabindex),它們不會消失。
牛逼
順便說一句,jQuery庫是1.4.4。不是我認爲這有多大的區別,而只是fyi。此外,我還將所有腳本和樣式保持在內聯狀態,以便您更輕鬆地查看我的計劃。乾杯... – tadywankenobi 2011-01-25 17:13:54