2012-06-24 57 views
0

我使用WordPress中的熱鍵功能在項目中創建鍵盤導航。雖然鍵盤功能正在工作,但由於某種原因,它只會滾動到下一個項目,而不是轉到上一個項目。當我用鼠標點擊箭頭時,一切正常,但由於某些原因,使用鍵盤時無法正常工作。帶WordPress的jQuery熱鍵next-post

這裏是鏈接到項目

http://geoffgeoff.com/dialect-skateboards-identity/

這是我的js代碼

$(document).ready(function() { 

    // This uses the Hotkeys jQuery plugin. See below for 
    // the native jQuery alternative. 
    $(document).bind('keydown', 'left', function() { 
     var url = $('#left_arrow a').attr('href'); 
     if (url) { 
      window.location = url; 
     } 
    }); 
    $(document).bind('keydown', 'right', function() { 
     var url = $('#right_arrow a').attr('href'); 
     if (url) { 
      window.location = url; 
     } 
    }); 

}); 

回答

0

你不能這樣分配的關鍵。實際上你將這兩個函數綁定到了全局keydown事件,第二個函數覆蓋了第一個函數。嘗試在訪問您的網站時推送任何密鑰 - 每個密鑰都會加載下一篇文章。

的正確方法是檢測函數內部的按鍵,然後觸發正確的錨元素上點擊:

$(document).bind('keydown', function (evnt) { 

    var elem = evnt.keyCode === 37 // left arrow 
     ? '#left_arrow a' 
     : evnt.keyCode === 39 // right arrow 
     ? '#right_arrow a' 
     : false; 

    if (!elem) { 
     return; 
    } 

    $(elem).trigger('click'); 

}); 

如果鍵代碼爲37,按下左箭頭,如果鍵代碼是39右箭頭被按下。通過使用三元運算符,如果未點擊左側和右側,則可以將elem變量賦予false。在這種情況下該函數返回false並且什麼都不會發生。

否則,觸發左側或右側錨點的點擊事件。

+0

謝謝!我會試試看!我感謝你的幫助! – Geoff