2010-10-28 150 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>