将键盘绑定到左/右导航
我是一名摄影师,有一个网站,我无法编辑’模板’结构,但可以上传javascript / css等。
我想将next / prev导航绑定到键盘右/左。
链接的结构是:
我提到了这个,并设法创建了这个。
$(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属性)。
您需要定位
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; } }); });