2010-10-28 155 views
1

我正在使用jquery热键来绑定和运行一个功能,当用户点击他们的右箭头键。当jquery热键检测到键盘上的右箭头时,我想让jQuery点击下一个分页链接。由于某种原因,这是行不通的。我已确认分页作品。还确认选择器看起来不错,通过获得下面的工作,而不是.trigger,.remove()。jQuery触发点击

$(document).ready(function() { 

jQuery(document).bind('keydown', 'right',function (evt){ 
    $('#header').find('.next_page').trigger('click'); 
}); 

}); 

<div id="view-header"> 
<a class="next_page" href="/books/?page=2" rel="next">Next →</a> 
</div> 

对此有何看法?谢谢

+0

在你的HTML中,id是'view-header',而在你的Javascript中,你正在寻找'header'。 – jAndy 2010-10-28 06:13:58

回答

0

为什么不只是做一个.click()

或者您可以拿起href并使用javascript将用户带到那里。

location.href =''+ $('#header')。find('。next_page')。attr('href')+'';

+0

谢谢你现在。没有效果。还有其他的东西?你可以不要点击课程或类似的东西? – AnApprentice 2010-10-28 06:11:53

+0

拿起'href'属性并通过JS把用户带到那里怎么样?查看更新的答案。 – 2010-10-28 06:16:29

0

可能只是因为您在使用view-header作为html中的ID的jQuery中使用#header。我怀疑它就这么简单。很难调用本机点击事件,例如您所描述的那种。 .trigger('click')会发生什么,它会调用onClick事件(并且没有)。也许是做的最好的事情就是创建一个单击处理程序:

$('.next_page').click(function(){ 
location.href = $(this).attr('href'); 
}); 

这是一个单击处理程序:现在,当你调用.trigger(“点击”),它应该运行该代码。我认为这可以变得更简单,从你显示的内容(即你可以改变keydown处理程序中的location.href值并避免强制点击),但也许你有其他计划。 :)

UPDATE:

此代码的工作非常完美。它可能不是那么紧凑,但我试图尽可能保留原来的帖子。请享用。

<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
<script> 
$(function(){ 
$('.next_page').click(function(){ 
location.href = $(this).attr('href'); 
}); 
}); 
$(document).keydown(function(event) { 
if(event.keyCode==39) { 
        $('.next_page').trigger('click') 
       } 
      }); 
</script> 
<div id="header"> 
<a class="next_page" href="/books/?page=2" rel="next">Next →</a> 
</div>