[英]Bind Keyboard to left/right navigation
我是一名摄影师,有一个网站,我无法编辑'模板'结构,但可以上传javascript / css等。
我想将next / prev导航绑定到键盘右/左。
链接的结构是:
<div class="image_navigation">
<h4>Image Navigation</h4>
<ul>
<li class="index"><a href="LINKURL">Index</a></li>
<li class="previous"><a href="LINKURL">Previous</a></li>
<li class="next"><a href="LINKURL">Next</a></li>
</ul>
</div>
我提到了这个,并设法创建了这个。
$(function() {$(document).keyup(function(e) {
switch(e.keyCode) { case 37 : window.location = $('li.prev').attr('href'); break;
case 39 : window.location = $('li.next').attr('href'); break; }});});
这是我被困的地方。 它不起作用,因为它假设我正在引用一个href标记但是引用包含它的li。
任何想法将不胜感激!
window.location = $('li.next a').attr('href');
我发现这个问题上寻找受骗者时这个问题 ,并决定分享的jQuery的一点,我写来回答那一个修改您的选择:
// when the document is ready, run this function
jQuery(function( $ ) {
var keymap = {};
// LEFT
keymap[ 37 ] = "li.prev a";
// RIGHT
keymap[ 39 ] = "li.next a";
$( document ).on( "keyup", function(event) {
var href,
selector = keymap[ event.which ];
// if the key pressed was in our map, check for the href
if ( selector ) {
href = $( selector ).attr( "href" );
if ( href ) {
// navigate where the link points
window.location = href;
}
}
});
});
$(function() {$(document).keyup(function(e) {
switch(e.keyCode) { case 37 : window.location = $('li.prev a').attr('href'); break;
case 39 : window.location = $('li.next a').attr('href'); break; }});});
$('li.next')以“next”类为目标列出所有列表项,就是这样 - 它不知道列表项的内容。
如果你想要一个标签的href,你需要更深一些($('li.next a')或$(li.next')。find('a')) - 你的原始代码正在寻找列表项本身的href属性(当然不存在,因为列表项没有href属性)。
您需要定位<li>中的<a>。 我看到你正在使用jquery [并假设你已经在标题中包含了必要的jquery文件]。
http://api.jquery.com/child-selector/是了解jquery选择器的好地方。
假设代码中的其他所有内容都是正确的,那么您可以实现我认为您正在寻找的内容
$(function() {
$(document).keyup(function(e) {
switch(e.keyCode) {
case 37 : window.location = $('li.previous a').attr('href');
break;
case 39 : window.location = $('li.next a').attr('href');
break;
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.