2011-10-09 76 views
0

我希望用戶能夠在鍵盤上按左或右時加載下一頁或上一頁。每個頁面的下一個和上一個鏈接都包含在兩個按鈕中。jQuery鍵盤導航 - 前後左右轉動頁面

的HTML ...

<a href="/page-link-prev" class="prev button">&lt; Prev</a> 
<a href="/page-link-next" class="next button">Next &gt;</a> 

一些jQuery的我發現,登記正確的按鍵,但沒有明顯變化的網址,它只是顯示一個警告。

$(function() { 
    $(document).keyup(function(e) { 
    switch(e.keyCode) { 
     case 37 : alert('You pressed Left'); break; 
     case 39 : alert('You pressed Right'); break; 
    } 
    }); 
}); 
+0

[鍵盤導航加載頁面]的可能的重複(http://stackoverflow.com/questions/3768738/keyboard-navigation-to-load-pages) – JJJ

+0

我已經編寫了一篇關於它的文章。隨意查看... ***](http://crazylearner.com/jquery-keyboard-navigation/) – teacher

回答

2

您可以使用.load()從URL加載到頁面的一部分。

.load(URL,[數據] [完成(responseText的,textStatus,XMLHttpRequest的)])

從服務器加載數據,並把返回的HTML到匹配 元件。

我假設你有你想要刷新W¯¯頁面內容的特定div,你不想刷新整個頁面

$(function() { 
    $(document).keyup(function(e) { 
    switch(e.keyCode) { 
     case 37 : $('#page').load($(".prev").attr("href")); break; 
     case 39 : $('#page').load($(".next").attr("href")); break; 
    } 
    }); 
}); 

或者,如果你想刷新整個頁面,您可以使用window.location

每當位置對象的屬性被修改,文件 將使用URL加載彷彿window.location.assign()已被 用修改的URL調用。

$(function() { 
    $(document).keyup(function(e) { 
    switch(e.keyCode) { 
     case 37 : window.location = $('.prev').attr('href'); break; 
     case 39 : window.location = $('.next').attr('href'); break; 
    } 
    }); 
}); 

您可以替換#page與你耳目一新的元素。

1

我認爲你必須使用window對象的位置屬性是這樣的:

$(function() { 
    $(document).keyup(function(e) { 
    switch(e.keyCode) { 
     case 37 : 
     window.location="/page-link-prev"; 
     break; 
     case 37 : 
     window.location="/page-link-next"; 
     break; 
    } 
    }); 
}); 

或者你可以觸發錨的jQuery對象上的click事件。

+0

這工作... 'window.location = $('。prev')。attr( 'href');' – firefusion

+0

比給它一個「有用答案」標誌;) – Jumi